marw_the_big_headed_rhino Skrevet 4. september 2007 Rapporter Del 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! Lenke til kommentar
Martin A. Skrevet 4. september 2007 Rapporter Del 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. Lenke til kommentar
Ståle Skrevet 4. september 2007 Rapporter Del Skrevet 4. september 2007 Mest sannsynlig er det et felt som ikke eksisterer. Lenke til kommentar
marw_the_big_headed_rhino Skrevet 4. september 2007 Forfatter Rapporter Del 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 Lenke til kommentar
Gjest Slettet+142 Skrevet 4. september 2007 Rapporter Del 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); Lenke til kommentar
Martin A. Skrevet 4. september 2007 Rapporter Del 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. Lenke til kommentar
marw_the_big_headed_rhino Skrevet 6. september 2007 Forfatter Rapporter Del 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 :-) Lenke til kommentar
Martin A. Skrevet 7. september 2007 Rapporter Del 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() );" Lenke til kommentar
marw_the_big_headed_rhino Skrevet 7. september 2007 Forfatter Rapporter Del Skrevet 7. september 2007 Takk for tipset, M4rTin! Skal huske det til neste gang jeg sitter å programmerer. I morgen... Lenke til kommentar
Peter Skrevet 8. september 2007 Rapporter Del 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. Lenke til kommentar
marw_the_big_headed_rhino Skrevet 8. september 2007 Forfatter Rapporter Del 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 Lenke til kommentar
Gjest Slettet+142 Skrevet 8. september 2007 Rapporter Del 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 Lenke til kommentar
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å