23. juni 2007 - 12:49
Der er
17 kommentarer og 1 løsning
assoc problem
Hej eksperter, Jeg er begyndt at få denne fejl konstant: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in .......... on line 160 Min Query virker fint, og da jeg får fejlen flere steder, med forskellige queries har jeg svært ved at tro det har noget med den at gøre. det er bygget sådan her op: $sql = "$sql = 'SELECT * FROM `table` WHERE `row`=1 ORDER BY date'; $query = mysql_query( $sql ); if() { while( $get = mysql_fetch_assoc( $query ) ) } Noget galt med den opstilling? (har ikke flere points at give ud af :) På forhånd tak!
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Prøv med denne. $sql = mysql_query('SELECT * FROM `table` WHERE `row`=1 ORDER BY date'); $query = mysql_query( $sql ); Kim
Sådan selvfølgelig ;-) $sql = mysql_query('SELECT * FROM `table` WHERE `row`=1 ORDER BY date'); while( $get = mysql_fetch_assoc( $sql ) ){ }
Det er præcist det samme, bare i én variabel :) Og har desuden prøvet det :D
din tabel hedder "table" og du har en kolonne der hedder "row" samt et felt der hedder "date" hvis du har de ovenstående felter så skal det virke ;-) Prøv evt. $sql = mysql_query('SELECT * FROM `table` WHERE `row`='1' ORDER BY 'date''); while( $get = mysql_fetch_assoc( $sql ) ){ }
Du skal huske på, mysql_fetch_assoc() fejler hvis resultatet er tomt. Så overvej evt.: $sql = "$sql = 'SELECT * FROM `table` WHERE `row`=1 ORDER BY date'; $query = mysql_query( $sql ); if(mysql_num_rows($query)>0) { while( $get = mysql_fetch_assoc( $query ) ) { //Noget med din $get data. } }
Som sagt, querien virker, 100%, henter info ud fra den før min if, og det går fint. Og du har intet ændret?
så kigger du ikke ordentlig efter '1' og 'date' prøv det jakobdo forslår.
Få at vide hvad fejlen er, stedet for at gætte: $query = mysql_query( $sql ) or die(mysql_error());
erikjacobsen > Den viser ingen fejl :) Har også kørt den i phpmyadmin, og den finder fint 3 resultater. I to andre > Min while køres _KUN_ hvis den finder noget.
23. juni 2007 - 14:18
#10
Og værre er at den viser fejl, kører min while én gang, og stopper.
23. juni 2007 - 14:19
#11
Du er velkommen til at 1) vise din kode, som den ser ud nu 2) fortælle hvad det er, der ikke virker
23. juni 2007 - 14:26
#12
$sql = 'SELECT * FROM `table` WHERE `row`=1 ORDER BY dated'; $query = mysql_query( $sql ) or die(mysql_error()); $nums = mysql_num_rows( $query ); if( $nums == 0 ) $GLOBALS['stop']++; if() {} elseif( $GLOBALS['stop'] == 0 AND $_POST['quickact'] == 'del' ) { while( $gets = mysql_fetch_assoc( $query ) ) { if( isset( $_POST['quick_' . $gets['id']] ) ) { $sql = 'DELETE FROM `table` WHERE `row`=1 AND `id`=' . $gets['id'] . ''; $query = mysql_query( $sql ); if( !$query ) echo '<script>alert( \'An error has occured!\' );</script>'; } } }
23. juni 2007 - 14:27
#13
Som sagt, sletter den én ting, altså kører min while én gang, og viser fejl.
23. juni 2007 - 14:31
#14
Du skal nok kun bruge navnet $query til en og samme ting, og lade være med at "genbruge" den ;)
23. juni 2007 - 15:14
#15
Well, så skulle jeg finde på 23203 navne til mine queries :D Overskriver den ikke bare min nuværende $query?
23. juni 2007 - 15:18
#16
Men det virkede da jeg ændrede navnet på min delete query, sikkert fordi jeg min while kørte min DELETE query efter første gang. Smid et svar erik(også selvom du ikke samler på point) :)
23. juni 2007 - 15:57
#17
Min opfordring til ikke at genbruge navne gælder selvfølgelig kun i kodestumper, hvor man netop overskriver andre værdier, man skal bruge. Det kunne også gælde din $sql-variabel, som du ganske vist godt kan genbruge, da du ikke bruger den tidligere værdi. For læselighed kunne man give dem forskellige navne. Nej tak, jeg samler slet ikke på point.
26. juni 2007 - 21:42
#18
ff
Vi tilbyder markedets bedste kurser inden for webudvikling