Problem mit Query
am 06.11.2005 11:37:38 von schrist
Hallo,
vielleicht kann mir von Euch mal eben jemand das Brett vorm Kopf
wegnehmen:
In einem Script starte ich folgendes Query:
$sql_points =3D "SELECT `ID`, `Question-ID`, `Answered`, `Level-ID`,
`Round`, `Correct`
FROM `".$_POST['mnumber']."`
WHERE `Correct` =3D 'yes'";
Dies funktioniert reibunglos.
In einem anderen Script habe ich folgendes Query:
$sql_user_quest =3D "SELECT `ID`, `Question-ID`, `Answered`, `Level-ID`,
`Round`, `Correct` FROM `".$user."` WHERE `Question-ID` =3D
'".$_GET['qid']."'";
Hierbei habe ich das Problem, dass der Inhalt der Variablen $user nicht
angezeigt wird. Wenn ich die beiden ` weglasse, wird $user zwar
angezeigt, aber das Query wird trotzdem nicht ausgeführt. In
phpMyAdmin überführt und die ` manuell eingesetzt, geht die Abfrage
wieder. Kann mir jemand von Euch sagen, warum das in dem einen Query
geht und im anderen nicht?
Danke,
Christian
Re: Problem mit Query
am 06.11.2005 14:18:44 von Stefan Rybacki
schrist@gmx.net wrote:
> Hallo,
>
> vielleicht kann mir von Euch mal eben jemand das Brett vorm Kopf
> wegnehmen:
> In einem Script starte ich folgendes Query:
> $sql_points = "SELECT `ID`, `Question-ID`, `Answered`, `Level-ID`,
> `Round`, `Correct`
> FROM `".$_POST['mnumber']."`
ganz böse! Man validiert Variablen vorher
> WHERE `Correct` = 'yes'";
> Dies funktioniert reibunglos.
>
> In einem anderen Script habe ich folgendes Query:
> $sql_user_quest = "SELECT `ID`, `Question-ID`, `Answered`, `Level-ID`,
> `Round`, `Correct` FROM `".$user."` WHERE `Question-ID` =
> '".$_GET['qid']."'";
Auch hier fehlt die Validierung. (Wo kommt $user her?)
> Hierbei habe ich das Problem, dass der Inhalt der Variablen $user nicht
> angezeigt wird. Wenn ich die beiden ` weglasse, wird $user zwar
> angezeigt,
Das glaube ich dir nicht. Beispiele.
> aber das Query wird trotzdem nicht ausgeführt. In
> phpMyAdmin überführt und die ` manuell eingesetzt, geht die Abfrage
> wieder. Kann mir jemand von Euch sagen, warum das in dem einen Query
> geht und im anderen nicht?
Ich denke deine Query sieht nicht so aus, wie du es denkst.
Bis denn dann
Stefan
> Danke,
> Christian
>
Re: Problem mit Query
am 06.11.2005 14:57:25 von schrist
Hallo,
> > vielleicht kann mir von Euch mal eben jemand das Brett vorm Kopf
> > wegnehmen:
> > In einem Script starte ich folgendes Query:
> > $sql_points =3D "SELECT `ID`, `Question-ID`, `Answered`, `Level-ID`,
> > `Round`, `Correct`
> > FROM `".$_POST['mnumber']."`
>
> ganz böse! Man validiert Variablen vorher
Ja, ich weiß. Dies ist aber in einem geschlossenen Bereich, den nur
ich bediene, da kann ich mir das validieren sparen.
>
> > WHERE `Correct` =3D 'yes'";
> > Dies funktioniert reibunglos.
> >
> > In einem anderen Script habe ich folgendes Query:
> > $sql_user_quest =3D "SELECT `ID`, `Question-ID`, `Answered`, `Level-ID`,
> > `Round`, `Correct` FROM `".$user."` WHERE `Question-ID` =3D
> > '".$_GET['qid']."'";
>
> Auch hier fehlt die Validierung. (Wo kommt $user her?)
$user ist ein Array, dass die verschiedenen User-Namen enthält und aus
einer DB ausgelesen wird.
> > Hierbei habe ich das Problem, dass der Inhalt der Variablen $user nicht
> > angezeigt wird. Wenn ich die beiden ` weglasse, wird $user zwar
> > angezeigt,
>
> Das glaube ich dir nicht. Beispiele.
So sieht das Query aus:
$sql_user_quest =3D "SELECT `ID`, `Question-ID`, `Answered`, `Level-ID`,
`Round`, `Correct` FROM `".$row_user['User']."` WHERE `Question-ID` =3D
'".$_GET['qid']."'";
So sieht das Query nach dem Parsen aus:
SELECT `ID`, `Question-ID`, `Answered`, `Level-ID`, `Round`, `Correct`
FROM `` WHERE `Question-ID` =3D '129'
Das ist der Inhalt der Variablen user:
183
Habe keine Ahnung, was da schief läuft...
Christian
>
> > aber das Query wird trotzdem nicht ausgeführt. In
> > phpMyAdmin überführt und die ` manuell eingesetzt, geht die Abfrage
> > wieder. Kann mir jemand von Euch sagen, warum das in dem einen Query
> > geht und im anderen nicht?
>
> Ich denke deine Query sieht nicht so aus, wie du es denkst.
>=20
> Bis denn dann
> Stefan
Re: Problem mit Query
am 06.11.2005 15:02:44 von Stefan Rybacki
Christian Schnell wrote:
> Hallo,
>...
>
> So sieht das Query aus:
> $sql_user_quest = "SELECT `ID`, `Question-ID`, `Answered`, `Level-ID`,
> `Round`, `Correct` FROM `".$row_user['User']."` WHERE `Question-ID` =
> '".$_GET['qid']."'";
> So sieht das Query nach dem Parsen aus:
> SELECT `ID`, `Question-ID`, `Answered`, `Level-ID`, `Round`, `Correct`
> FROM `` WHERE `Question-ID` = '129'
> Das ist der Inhalt der Variablen user:
> 183
was sagt print_r($row_user)? beachte auch, daß assoziative arrays in PHP casesensitve
sind, d.h. $row_user['user']!=$row_user['User']
Bis denn dann
Stefan
>....
Re: Problem mit Query
am 06.11.2005 15:11:33 von schrist
Stefan Rybacki schrieb:
> Christian Schnell wrote:
> > Hallo,
> >...
>
> >
> > So sieht das Query aus:
> > $sql_user_quest =3D "SELECT `ID`, `Question-ID`, `Answered`, `Level-ID`,
> > `Round`, `Correct` FROM `".$row_user['User']."` WHERE `Question-ID` =3D
> > '".$_GET['qid']."'";
> > So sieht das Query nach dem Parsen aus:
> > SELECT `ID`, `Question-ID`, `Answered`, `Level-ID`, `Round`, `Correct`
> > FROM `` WHERE `Question-ID` =3D '129'
> > Das ist der Inhalt der Variablen user:
> > 183
>
> was sagt print_r($row_user)?
eine von vielen Zeilen lautet:
Array ( [ID] =3D> 47 [User] =3D> 909275 [Rights] =3D> user ) 1
> beachte auch, daß assoziative arrays in PHP casesensitve
> sind, d.h. $row_user['user']!=3D$row_user['User']
ja, das ist klar. Da dürfte der Fehler auch nicht liegen.
Christian
Re: Problem mit Query
am 06.11.2005 16:23:15 von Stefan Rybacki
Christian Schnell wrote:
> Stefan Rybacki schrieb:
>
>
>>Christian Schnell wrote:
>>
>>>Hallo,
>>>...
>>
>>>So sieht das Query aus:
>>>$sql_user_quest = "SELECT `ID`, `Question-ID`, `Answered`, `Level-ID`,
>>>`Round`, `Correct` FROM `".$row_user['User']."` WHERE `Question-ID` =
>>>'".$_GET['qid']."'";
>>>So sieht das Query nach dem Parsen aus:
>>>SELECT `ID`, `Question-ID`, `Answered`, `Level-ID`, `Round`, `Correct`
>>>FROM `` WHERE `Question-ID` = '129'
>>>Das ist der Inhalt der Variablen user:
>>>183
>>
>>was sagt print_r($row_user)?
>
>
> eine von vielen Zeilen lautet:
> Array ( [ID] => 47 [User] => 909275 [Rights] => user ) 1
>
was heißt hier eine von vielen Zeilen?
Besteht $row_user aus mehreren Arrays? Meine Vermutung ist ganz einfach, daß
$row_user['User'] einfach nicht definiert ist. D.h. du hast z.B. $row_user als 2
dimensionales Array und müsstest eher $row_user[key]['User'] abfragen, aber da ich deinen
Code nicht kenne kann ich halt nur vermuten.
Bis denn dann
Stefan
>...