17. juli 2006 - 23:24Der er
29 kommentarer og 1 løsning
Kode virker lige pludselig ikke mere ?
$q = mysql_query("(SELECT *, CONCAT(LEFT(info, 150), '...') AS short FROM produkter WHERE gruppe = '$kid' && titel LIKE 'gris%' ORDER by titel DESC) UNION (SELECT *, CONCAT(LEFT(info, 150), '...') AS short FROM produkter WHERE gruppe = '$kid' && titel NOT LIKE 'gris%' ORDER by titel DESC)");
<----- dette her virket fint i 1 år nu virker det pludselig ikke mere ?? hvorfor ? jeg får fejl
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Så vil du få mysql's fejlmeddelelse. Mit bud er, at $kid pludselig ikke indeholder mere, fordi nogle har pillet ved register_globals på serveren. Så skal du bruge $_GET['kid'] eller $_POST['kid'], hvis kid bliver sendt via en form eller adresselinien.
a) flyt ALT din SQL i en $sql variable b) ændre din mysql_query til mysql_query($sql) or die("Fail in SQL<hr><pre>".$sql."</pre><hr><b>".mysql_error()."</b>");
Kan jo være ret svært at sige, hvis det virker igen, uden at du har ændret noget. Sikker på, at du ikke stirrede dig blind på et mærkeligt tegn der havde sneget sind i adresselinien eller lign.?
nej for det var de samme links jeg klikke på før/efter jeg fik fejlen(så samme url), og koden var også den samme!
Jeg har også andre sider som også henter fra adresse linien og de virkede også fint(under forløbbet)(og der blev ikke brugt POST eller GET). Så det burde næsten være noget med koden jeg skrev først... men det hele virker nu, men det var da rart at vide hvad fejlen var ??!!
Ville nok hellere lave det som en funktion: function mailsqlerror() { $msg = "Fejl i følgende SQL\n\n"; $msg += $sql; $msg += "\n---------------\n"; $msg += "Fejlmeddelse:\n"; $msg += mysql_error(); mail("din@email.tld","FEJL!",$msg); }
Og så kalde den: $res = mysql_query($sql) or mailsqlerror();
$sql = "(SELECT *, CONCAT(LEFT(info, 150), '...') AS short FROM produkter WHERE gruppe = '$kid' && titel LIKE 'gris%' ORDER by titel DESC) UNION (SELECT *, CONCAT(LEFT(info, 150), '...') AS short FROM produkter WHERE gruppe = '$kid' && titel NOT LIKE 'gris%' ORDER by titel DESC)";
Ja, og så husk at have: function mailsqlerror() { $msg = "Fejl i følgende SQL\n\n"; $msg += $sql; $msg += "\n---------------\n"; $msg += "Fejlmeddelse:\n"; $msg += mysql_error(); mail("din@email.tld","FEJL!",$msg); } Med et eller andet sted, evt i en fil du includer.
Nej, ".." skal ikke med, når det er en variabel du indsætter. Og hvad fejlmeddelelsen angår, skulle der så ikke stå "gruppe" med 2 p'er? Eller det var måske en provokeret fejl? :) Men godt at det virker!
Ok :) Ved ikke hvem du ønsker svar fra, dit oprindelige spørgsmål var der jo egentlig ikke nogen af os, der kunne hjælpe med?! Jeg smider et svar, så afviser du bare, hvis du mener det - selv tak!
Og ja, det virker også med "..", men det er syntaxmæssigt forkert, og en stramt opsat server, vil opfatte det som en fejl.
Nej det var heller ikke et nemt problem at finde en løsning på da det forsvandt igen, men nu har i dag hjulpet med at kunne opdage den igen hvis den kommer ;)
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.