PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Datenbankabfrage mit Variable als Bedingung (http://www.selfphp.de/forum/showthread.php?t=22345)

$er0 04.11.2009 22:19:06

Datenbankabfrage mit Variable als Bedingung
 
Hi ich hab ein hoffe ich mal für eich kleines Problem ;)

$sql = "SELECT DISTINCT mkuerzel FROM Spieler LIMIT 0, 50";
$db_erg = mysql_query ( $sql);
$x = 1;
while ($zeile = mysql_fetch_array ( $db_erg, MYSQL_ASSOC))
{
$zw[$x] = trim($zeile['mkuerzel']);

$sql_1 = 'SELECT holz'
. ' FROM Ergebnisse'
. ' LEFT JOIN Spieler ON Ergebnisse.ID = Spieler.ID'
. ' WHERE spieltag = 1 AND Spieler.mkuerzel = "$zw[$x]"';
$db_erg_1 = mysql_query( $sql_1 );

$ergebniss = 0;
while ( $zeile_1 = mysql_fetch_array ( $db_erg_1, MYSQL_ASSOC))
{
$ergebniss = $ergebniss + $zeile_1['holz'];
echo $zeile_1['holz'];
}
echo $zw[$x];
echo $ergebniss;
echo $x;
mysql_query("UPDATE M_Ergebnisse SET holz = $ergebniss , spieltag = 1 WHERE mkuerzel = '$zw[$x]'");
printf ("Veränderte Datensätze: %d\n", mysql_affected_rows());
mysql_query("COMMIT");
$x++;


Zum Verständniss in $zw[$x] steht TEXT z.B: "AA" , "AB" ...
Das Problem ist das die Zweite abfrage nicht mit der Variable arbeitet.
SQL giebt zwar keinen fehler aus aber die rückgabe ist immer 0.
Ich hab auch schon versucht $zeile['mkuerzel'] direkt in der zweiten Abfrage zu nehmen aber das Ergebniss wahr das gleiche. Auch $zw als Variable und nicht als array hat keine wirkung gehabt.
Wenn ich an statt der Variablen nur "AA" schreibe geht die Abfrage.

Hat einer eine Idee was ich falsch mache ??

urvater 05.11.2009 21:00:33

AW: Datenbankabfrage mit Variable als Bedingung
 
Hast du dir schon einmal den 2. Select einfach als Text ausgeben lassen?
PHP-Code:

<?php
echo $sql_1;
?>

Denn ich würde behaupten, das deine Variable nicht korrekt im Select verarbeitet wird.
PHP-Code:

"$zw[$x]" //diese Stelle meine ich genau 

Da du mir ' den Select einschliesst würde ich diesen Teil so schreiben
PHP-Code:

'.$zw[$x].' 


$er0 05.11.2009 21:50:54

AW: Datenbankabfrage mit Variable als Bedingung
 
Der Denkanstoß hat geholfen ich hab es jetzt wie folgt gelöst.
Ich hab die Abfrage umgeschreiben:

"SELECT holz FROM Ergebnisse LEFT JOIN Spieler ON Ergebnisse.ID = Spieler.ID WHERE spieltag = 1 AND Spieler.mkuerzel = '$zw[$x]'"


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:31:29 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.