webForumDet fria alternativet

COUNT och hämta id samtidigt

Databaser & SQLur Databashanterare & SQL

6 svar · 264 visningar · startad av Pedda

PeddaMedlem sedan juni 20006 032 inlägg
Frågan#1

Har denna kod för att kolla om ett företag är registrerat. Om företaget redan är registrerad så vill jag ha vilket id den har, hämtat i samma sql-fråga.
Går det?

// Kolla om så företaget inte redan är registrerat. 
$sql = "SELECT COUNT(*) FROM foretag WHERE foretag='{$_POST['foretag']}' AND ort='{$_POST['ort']}'"; 
$result = mysql_query($sql) or die('Fel: ' . mysql_error());
  if (mysql_result($result, 0) > 0) { 
    $reg_error[] = 14; 
}
Peeers avatarPeeerMedlem sedan mars 20025 907 inlägg
#2

Måste du räkna då? Plocka bara ut id't istället. Finns det ett id så finns ju företaget, finns det inget id (dvs, frågan returnerar inget) så finns inte företaget.

PeddaMedlem sedan juni 20006 032 inlägg
#3

Skriptet kollar ju så man inte registrerar samma företag två gånger. Alltså vet inte den som försöker göra det andra gången att företaget redan finns i databasen. Så jag behöver veta vilket id företaget har som redan finns i databasen.
Vill helst slippa göra två sql frågor. En som kollar om företaget redan är registrerat och en för att hämta id'et på det redan registrerade företaget.

Peeers avatarPeeerMedlem sedan mars 20025 907 inlägg
#4

Ja?
Istället för att räkna antalet företag som har ett visst namn, så kan du ju plocka ut id-numret på det företaget som har det namnet. Finns inte företaget så får du ju inte heller ett id.

$sql = "SELECT id FROM foretag WHERE foretag='{$_POST['foretag']}' AND ort='{$_POST['ort']}'"; 
$result = mysql_query($sql) or die('Fel: ' . mysql_error());
$var = mysql_fetch_assoc($result));
  if ($var){
    $id = $var['id'];
  }else{
    $reg_error[] = 14; 
}

Otestad kod

PeddaMedlem sedan juni 20006 032 inlägg
#5

Ah, det var så du menade. Att jag inte tänkte på det. :r

Tackar.

Peeers avatarPeeerMedlem sedan mars 20025 907 inlägg
#6

Så lite så :)

PeddaMedlem sedan juni 20006 032 inlägg
#7

Fick det att fungera efter lite ändringar.

132 ms totalt · 3 externa anrop · v20260731065814-full.58439ac5
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)