marw_the_big_headed_rhino Skrevet 4. september 2007 Skrevet 4. september 2007 Hei og hopp! Hater PHP! Av og til... får "mysql_num_rows(): supplied argument is not a valid MySQL result resource" når jeg kjører denne koden: $result = mysql_query("SELECT id,name,link,contentid FROM jos_ibruk_documentation WHERE contentid='$id'"); // find out how many rows there are $num = mysql_num_rows($result); Hvorfor får jeg det? Får et fornuftig resultat når jeg kjører spørringen også. Hvorfor får jeg ikke telt opp rader i spørringen? AAARG!
Martin A. Skrevet 4. september 2007 Skrevet 4. september 2007 PHP er et fint språk det. Feilmeldingen forteller det alltid hva som er feilen. Bruk ALLTID "or die( mysql_error() )" etter spørringen. Hvertfall når du driver med utviklingen av scriptet. Jeg får også ut ifra at `contentid` er en integer (tall), og du trenger derfor ikke fnutter rundt verdien.
Ståle Skrevet 4. september 2007 Skrevet 4. september 2007 Mest sannsynlig er det et felt som ikke eksisterer.
marw_the_big_headed_rhino Skrevet 4. september 2007 Forfatter Skrevet 4. september 2007 Mest sannsynlig er det et felt som ikke eksisterer. 9425408[/snapback] id er en integer autoincrement name er navn på linken link er adressen til linken contentid er fremmednøkkelen. Kan noen gi meg et lite tips på en bitteliten kodesnutt jeg kan prøve for å se om det fungerer med det? Bhead
Gjest Slettet+142 Skrevet 4. september 2007 Skrevet 4. september 2007 Har du gjort som M4rtin ba deg om? $result = mysql_query("SELECT id,name,link,contentid FROM jos_ibruk_documentation WHERE contentid='$id'"); if(!$result) echo '<br>'.mysql_error().'<br>'; // find out how many rows there are $num = mysql_num_rows($result);
Martin A. Skrevet 4. september 2007 Skrevet 4. september 2007 Bruk ALLTID "or die( mysql_error() )" etter spørringen. Hvertfall når du driver med utviklingen av scriptet. 9424207[/snapback] Kan noen gi meg et lite tips på en bitteliten kodesnutt jeg kan prøve for å se om det fungerer med det? 9425996[/snapback] Gjør det, og du vil få en fin feilmelding.
marw_the_big_headed_rhino Skrevet 6. september 2007 Forfatter Skrevet 6. september 2007 Takk for hjelpen. Hadde or Die() i inc fila mi, men fikk ingen feilmeldinger i hovedfila. Men or Die() fungerte fint, og jeg har fått fikset alt. Til neste gang :-)
Martin A. Skrevet 7. september 2007 Skrevet 7. september 2007 Du bør ha det etter hver eneste spørring ( mysql_query() ) når scriptet er i utviklingsfasen. Når du er ferdig endrer du det til å vise en mindre detaljert feilmelding. Gjerne "or die( "Feil på linje nr.: . " __LINE__ . "<br />" . mysql_error() );"
marw_the_big_headed_rhino Skrevet 7. september 2007 Forfatter Skrevet 7. september 2007 Takk for tipset, M4rTin! Skal huske det til neste gang jeg sitter å programmerer. I morgen...
Peter Skrevet 8. september 2007 Skrevet 8. september 2007 Vrøvl. Bare sjekk returverdien fra mysql_query === FALSE. "or die()" er hat av dimensjoner. Det er noe som heter "graceful degrading" som vil si at programmet gjør så mye som mulig selv om det har oppstått en feilmelding. Se for deg et bibliotek som plutselig bare avbryter scriptet ditt, selv om om du klarer deg fint uten databasen, f.eks. ved å servere en cachet versjon av dataene istedenfor. Men neeeeida, biblioteket skal plutselig bestemme når DU vil avslutte scriptet. nei takk, die() er stort sett bare tull å bruke. Lær dere å sjekke returverdier fra funksjonene og utfør oppgaver deretter.
marw_the_big_headed_rhino Skrevet 8. september 2007 Forfatter Skrevet 8. september 2007 Vrøvl.Bare sjekk returverdien fra mysql_query === FALSE. "or die()" er hat av dimensjoner. Det er noe som heter "graceful degrading" som vil si at programmet gjør så mye som mulig selv om det har oppstått en feilmelding. Se for deg et bibliotek som plutselig bare avbryter scriptet ditt, selv om om du klarer deg fint uten databasen, f.eks. ved å servere en cachet versjon av dataene istedenfor. Men neeeeida, biblioteket skal plutselig bestemme når DU vil avslutte scriptet. nei takk, die() er stort sett bare tull å bruke. Lær dere å sjekke returverdier fra funksjonene og utfør oppgaver deretter. 9450477[/snapback] Kan du gi noen gode eksempler på sjekk av returverdier? Er alltid ute etter å lære
Gjest Slettet+142 Skrevet 8. september 2007 Skrevet 8. september 2007 $query = mysql_query("SELECT bla bla bla"); if($query===FALSE) echo "Dette gikk ikke bra.."; else{ if(mysql_num_rows($query) < 1) echo "Mysql returnerte ingen rader."; else{ while($r = mysql_fetch_assoc($query)){ //behandle data }/while }//if(mysql_num_rows >= 1) }//if($query!==FALSE) Rotete, men tror den skal funke som eksempel
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå