20. august 2004 - 14:16Der er
25 kommentarer og 1 løsning
fejl i funktion
Jeg får fejl når jeg prøver at hente noget fra min query... Men hvis jeg flytter det hele udenfor min funktion er der ikke noget galt?!
$sql = "SELECT debate.id, IFNULL(MAX(debate2.time), debate.time) AS last_time FROM $DB.$table debate LEFT JOIN $DB.$table debate2 ON debate.id=debate2.thread_id && debate2.reply_id!=0 WHERE debate.reply_id=0 GROUP BY debate.thread_id ORDER BY last_time DESC";
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
når du bruger en variabel indeni en funktion leder php kun indeni den funktion, og hvis den ikke finder variabelen der opretter php en ny variabel der KUN findes indeni funktionen. Hvis du ønsker at bruge en variabel der er defineret udenfor må du enten sende den med som parameter, eller også erklære den global indeni funktionen.
Din funktion indeholder ikke nogen return sætning, hvad forventer du den skal returnere til $list_arr.
det var også bare et udsnit af min kode jeg skrev...
her er det hele, men det virker stadig ikke...
$sql = "SELECT debate.id, IFNULL(MAX(debate2.time), debate.time) AS last_time FROM $DB.$table debate LEFT JOIN $DB.$table debate2 ON debate.id=debate2.thread_id && debate2.reply_id!=0 WHERE debate.reply_id=0 GROUP BY debate.thread_id ORDER BY last_time DESC";
$sql = "SELECT debate.id, IFNULL(MAX(debate2.time), debate.time) AS last_time FROM $DB.$table debate LEFT JOIN $DB.$table debate2 ON debate.id=debate2.thread_id && debate2.reply_id!=0 WHERE debate.reply_id=0 GROUP BY debate.thread_id ORDER BY last_time DESC";
jamen jeg får jo en fejl i min query så den når slet ikke så langt... men jeg smider jo også alle de variabler jeg skal bruge i arrayet $var_arr og returner den
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in s:\http\_www\avansis.dk\_clark\temp\test.php on line 25
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in s:\http\_www\avansis.dk\_clark\temp\test.php on line 27
hvis jeg laver min query udenfor funktionen som vist nedenunder udskriver den fint hvert id?? fatter ikke hvad der er galt??
$sql = "SELECT debate.id, IFNULL(MAX(debate2.time), debate.time) AS last_time FROM $DB.$table debate LEFT JOIN $DB.$table debate2 ON debate.id=debate2.thread_id && debate2.reply_id!=0 WHERE debate.reply_id=0 GROUP BY debate.thread_id ORDER BY last_time DESC";
ja ved det godt :) har prøvet - men får ikke en mere specifik fejlmelding af den grund??
jeg kan virkelig ikke fatte hvorfor det her ikke virker?? :(
$sql = "SELECT debate.id, IFNULL(MAX(debate2.time), debate.time) AS last_time FROM $DB.$table debate LEFT JOIN $DB.$table debate2 ON debate.id=debate2.thread_id && debate2.reply_id!=0 WHERE debate.reply_id=0 GROUP BY debate.thread_id ORDER BY last_time DESC";
får stadig kun: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in s:\http\_www\avansis.dk\_clark\temp\test.php on line 22
$sql = "SELECT debate.id, IFNULL(MAX(debate2.time), debate.time) AS last_time FROM $DB.$table debate LEFT JOIN $DB.$table debate2 ON debate.id=debate2.thread_id && debate2.reply_id!=0 WHERE debate.reply_id=0 GROUP BY debate.thread_id ORDER BY last_time DESC";
Ups. nej. Det var ukorrekt. linien: $num_rows = mysql_num_rows($get)or die(mysql_error()); vil gå galt hvis der ikke bliver fundet nogen rækker der passer (0 ses som false og så bliver die-funktionen udført.
der skal ikke 'or die(...)' efter funktionen 'mysql_num_rows'
Så lad os finde ud af hvad det er for en SQL kommando der ikke finder noget:
$get = mysql_query($sql)or die(mysql_error()); echo "din sql kommando er:<br>$sql<br>"; //DEBUG LINIE $num_rows = mysql_num_rows($get); echo "Der blev fundet $num_rows rækker";
fejl: din sql kommando er: SELECT debate.id, IFNULL(MAX(debate2.time), debate.time) AS last_time FROM elektrobeatdk.debate_generelt debate LEFT JOIN elektrobeatdk.debate_generelt debate2 ON debate.id=debate2.thread_id && debate2.reply_id!=0 WHERE debate.reply_id=0 GROUP BY debate.thread_id ORDER BY last_time DESC Der blev fundet 6 rækker
Det er fordi de to if sætninger gør at mysql_query() kun køres hvis $where og $order validerer som true. Hvis de ikke gør det, så køres mysql_query ikke, og så får du "supplied argument is not a valid MySQL result resource" når du forsøger at bruge resultatet.
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.