Avatar billede kryster Nybegynder
19. januar 2003 - 15:09 Der er 5 kommentarer og
3 løsninger

Fejl i SQL select, når intet resultat.

Jeg har set mig blind på denne fejl.
$name = "Hans Peter";
$test = mysql_query("SELECT * FROM members WHERE navn='".$name."'");
$row = mysql_fetch_array($test);
print $row["id"];

Hvis der ikke findes et medlem der hedder Hans Peter kommer den med følgende fejl.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /data/docs/dgpls.dk/docs/liga/div_prequal.php on line 83
linie 83 = $row = mysql_fetch_array($test);
Hvordan laver man et check på at hvis select ikke giver noget resultat så skal den ikke gøre noget?
Avatar billede jakoba Nybegynder
19. januar 2003 - 15:14 #1
Det tror jeg ikke på.
resultatet 'jeg kunne ikke finde noget' giver også et gyldig resultatsæt at arbejde videre med.

prøv at sætte en 'or die' på dit kald til  mysql_query:

$name = "Hans Peter";
$test = mysql_query("SELECT * FROM members WHERE navn='".$name."'") or die( mysql_error() );
$row = mysql_fetch_array($test);
print $row["id"];

jeg vil vædde en hel del på at den fortælle dig at der er noget galt med din SQL-kommandostreng (fx at din variabel $name ikke indeholder nogetsomhelst)

mvh JakobA
Avatar billede _darkstar_ Nybegynder
19. januar 2003 - 15:16 #2
Prøv at køre lignende forespørgsler og se om det gør dig klogere. Undlad f. eks. WHERE-delen og se om det kører.

Prøv herefter at se på antallet af rækker, den returnerer:

http://www.php.net/manual/en/function.mysql-num-rows.php
Avatar billede erikjacobsen Ekspert
19. januar 2003 - 15:16 #3
$name = "Hans Peter";
$test = mysql_query("SELECT * FROM members WHERE navn='".$name."'") or die( mysql_error() );
if ($row = mysql_fetch_array($test)) {
print $row["id"];
} else {
  print "nixen bixen";
}
Avatar billede sostack Nybegynder
19. januar 2003 - 15:41 #4
Jeg holder med <u>erikjacobsen</u> ;-)
Avatar billede erikjacobsen Ekspert
19. januar 2003 - 15:43 #5
Nå, nå, ja, jo, men jeg holder med jakoba. Det han skriver
er jeg 100% enig med.
Avatar billede erikjacobsen Ekspert
19. januar 2003 - 15:44 #6
99% .... :)
Avatar billede jakoba Nybegynder
19. januar 2003 - 15:53 #7
ingen lavere :-))

nae, vi er helt enige, erikjacobsen svarer blot på lidt mere end der bliver spurgt om ved at rette den anden fejl, som virkelig kommer når der ikke bliver fundet noget.

mvh JakobA
Avatar billede kryster Nybegynder
19. januar 2003 - 16:38 #8
Hmm nu kan jeg slet ikke få den til at fejle igen.
Så i får lidt point hver da i er kommet med forslag hvis det skulle ske igen.
or die( mysql_error() ); vil jeg prøve jeg har brugt or die("Unable to connect to database"); og den fortalte jo ikke så meget.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester