Problem mit meiner Funktion
-
Hier meine Funktion aus der functions.php
//{START} FUNCTION1: MySQL Query1
function test(categorie,sortsetting)
{
table." WHERE Section=".sortby." ".$sortsetting."") or die(mysql_error());
return $connect;
}
//{ENDE} FUNCTION1: MySQL Query1Aufruf in der tpl_index.php
test(_GET['module'],\_GET['sortby'],_GET['typ']);
row = mysql_fetch_array($var_connect))
{
[...]Fehler:
Unknown column 'start' in 'where clause'
Alle Variablen sind mit Inhalten gefüllt.
DB und Table sind in Ordnung. "Section" ist in der Table und es gibt auch Einträge deren Wert in "Section" "start" ist.Meine Vermutung:
Das:Section=".$categorie."
ist irgendwie falsch geschrieben.
Ich habs auch schon anders probiert, aber das gibt dann andere oder genau den selben Fehler.
Kann mir da jemand helfen?
MFG
Wubbel
-
Hey,
ohne deine Datenstruktur genauer zu kennen, Zeichenketten müssen in '' im Query stehen! Das könnte evt. der Fehler sein.
Anonsten würde ich unter gar keinem Fall die $_GET[''] Werte ohne Überprüfung in die Query lassen! Stichwort: SQL - Injektion. http://de2.php.net/manual/de/security.index.php
Gruss
-
Lass dir mal dein Query anzeigen - dort hast du offenbar (evtl. aufgrund fehlender "" bzw. '') start nicht als Wert, sondern als Spaltenbezeichner drinstecken
-
Ich habe das jetzt sowohl in der Funktion mit
echo $connect;
als auch vor der while schleife mit
echo $var_connect;
probiert.
Wurde abber nichts angezeigt.
-
Du sollst auch direkt den Query ausgebn, und nicht das Result-Handle:
echo "SELECT * FROM ".$table." WHERE Section=".$categorie." ORDER by ".$sortby." ".$sortsetting."";
-
Achso:
Das zeigt er u.a. an:
SELECT * FROM Folder WHERE Section=start ORDER by Folder ASC
-
Moin,
Dein Fehler liegt wie erwartet bei den Anführungszeichen! Ohne Anführungszeichen denkt er, start wäre eine Spalte in dieser Tabelle!
So müsste es gehen:
$connect = mysql_query("SELECT * FROM ".$table." WHERE Section='".$categorie."' ORDER by ".$sortby." ".$sortsetting."") or die(mysql_error());
Gruss
-
Ja das hatte ich auch schon probiert.
Dann kommt das hier:Warning: Missing argument 1 for test() in D:\Programme\xampp\htdocs\dwcvs\sys\set\functions.php on line 14
Warning: Missing argument 2 for test() in D:\Programme\xampp\htdocs\dwcvs\sys\set\functions.php on line 14
Warning: Missing argument 3 for test() in D:\Programme\xampp\htdocs\dwcvs\sys\set\functions.php on line 14
Warning: Missing argument 4 for test() in D:\Programme\xampp\htdocs\dwcvs\sys\set\functions.php on line 14
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE Section='' ORDER by' at line 1
-
Zeig doch nochmal den ganzen Code - offenbar hast du jetzt an der falschen Stelle etwas geändert :p
-
Falsch geändert? Eigentlich nicht (copy&Paste).
functions.php
<? //functions.php //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //{START} FUNCTION1: MySQL Query1 function test($table,$categorie,$sortby,$sortsetting) { $connect = mysql_query("SELECT * FROM ".$table." WHERE Section='".$categorie."' ORDER by ".$sortby." ".$sortsetting."") or die(mysql_error()); } //{ENDE} FUNCTION1: MySQL Query1
aufruf in der tpl_index.php:
<? //TPL: INDEX //{START} include: Alle Funktionen include("D:/Programme/xampp/htdocs/dwcvs/sys/set/functions.php"); //{ENDE} //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //{START} include: Html Head-Teil include("D:/Programme/xampp/htdocs/dwcvs/sys/tpl/main/head.php"); //{ENDE} //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: [..HTML KRAM..] /* Funktion db_connect erstellt den MySQL query die While Schleife holt die Einträge aus der DB und bestimmt die farben der Tabellen */ test($table1,$_GET['module'],$_GET['sortby'],$_GET['typ']); $var_connect = test(); while ($row = mysql_fetch_array($var_connect)) { printf('<TR bgColor="%s"> <TD width="17"><font face="Verdana" size="2"><IMG height=16 alt="DIR" src="archivmaster-Dateien/dir.gif" width=16 border=0></font></TD> <TD width="329"><font face="Verdana" size="2"> <a href="http://www.google.de">CVSROOT/</a></font></TD> <TD width="74"> <p align="center">{version}</TD> <TD width="66"> <p align="center">{alter}</TD> <TD width="110"> <p align="center"><font face="Verdana" size="2">root</font></TD> <TD width="219"> <p align="center">{Letzter Eintrag}</TD> </TR>', bgcolor(2)); }
-
test($table1,$_GET['module'],$_GET['sortby'],$_GET['typ']); $var_connect = test();
Das sollte wohl eher so aussehen:
$var_connect = test($table1,$_GET['module'],$_GET['sortby'],$_GET['typ']);
-
oops ja sollte es
Dazu sagt er:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\Programme\xampp\htdocs\dwcvs\sys\tpl\content\tpl_index.php on line 79
-
Dann hast du wohl immer noch einen Fehler im Query -> echo mysql_error();
-
Wubbel schrieb:
function test($table,$categorie,$sortby,$sortsetting) { $connect = mysql_query("SELECT * FROM ".$table." WHERE Section='".$categorie."' ORDER by ".$sortby." ".$sortsetting."") or die(mysql_error()); } [..] $var_connect = test($table1,$_GET['module'],$_GET['sortby'],$_GET['typ']);
Hi,
fehlt da nicht noch irgendwie ein return? Sonst gibt die Funktion ja nichts zurück und dein $var_connect bleibt leer!MfG
Alexander Sulfrian
-
Hatte ich vorhin ganz übersehen
- daran wird es wohl liegen
-
Das muss ich gelöscht haben, als ich den query ausgeben sollte.
Funktioniert endlich.
Danke an alle!