Abfrage einer MySQL Datenbank unter Benutzung von PHP Variablen als Spalten...

philishake

javascript enthusiast
Hi Leute.

Ich versuche grade ein Script zu schreiben das automatisch etwas genriet, klappt super, bis auf die Tatsache, dass ich Werte ais einem Table nicht mithilfe von Variablen auslesen kann... Hier erstmal der komplette Code:

<?

echo "generiere Gebirge...<br>";



$done = mt_rand(1,2);
while($done < 0)
{
$field = mt_rand(1,25);
if($field < 10)
{
$field = "0".$field;
}
$feld = "field".$field;

$sql = "SELECT * FROM vdorf WHERE username = '$nick'";
$result = mysql_query($sql) OR die("Fehler: Konnte Datenbank nicht abrufen");
if(mysql_num_rows($result))
{
while($row = mysql_fetch_assoc($result))
{
if($row[$feld] == 0) (habe auch schon $row['$feld'] probiert ...)
{
mysql_query("UPDATE vdorf SET '$feld'=4 WHERE username = '$nick'")
OR die("Fehler: Konnte vdorf nicht updaten");
$geb = "gebrige".$done;
$stein = "stein".$done;
mysql_query("UPDATE vgebrige SET '$geb'='$field','$stein'=100 WHERE username = '$nick'")
OR die("Fehler: Konnte vgebirge nicht updaten");

}
}
}
}

So...
Auf der Datenbank im Table vdorf sind 26 zeilen... usernamen und feld01 bis feld25
Wie oben zu sehen ist wird der Name der Zeile per Zufall ermittelt und zusammen geführt. Das klappt auch perfekt, besser noch als ich dachte. aber leider akzeptiert er die PHP Variablen nicht die ich zu Abfrage nutze.

mfg phil
 
Code:
 $feld = "field".$field;
usernamen und feld01 bis feld25
....wie genau heisst nun das Prefix....feld oder field

Ansonsten...auch hier: wenn in PHP etwas mit MySQL nicht funktioniert, bemühe bitte [phpf]mysql_error[/phpf] als ersten Ansprechpartner... damit lassen sich in der Mehrzahl der Fälle die Probleme eigenständig und schnell lösen :)
 
Bei allem Respekt - es ist etwas verwirrend ....

Auf der Datenbank im Table vdorf sind 26 zeilen... usernamen und feld01 bis feld25
Also hat die Tabelle 26 Spalten und nicht Zeilen oder ?

Hast du vor der mysql - Abfrage versucht nachzuprüfen ob in den Variabalen auch tatsächlich Wert enthalten ist ? Und zwar einer der sich in deiner Tabelle als Spaltenname vorfindet ?

Vielleicht versuchmal sich die $fields, und $feld - mit echo auszugeben. Und prüfe ob die Ausgaben auch den Namen der Spalten entsprechen

Zum Beispiel glaub ich hier gibts schon einen Fehler:
PHP:
 $feld = "field".$field;
Die Spalten in deiner Tabelle heißen aber feld01 - feld25 und nicht field01-field25
zumindest hast du unten so angegeben

Gruß
 
Feldnamen stehen in MySQL in aller Regel nicht in Hochkommata, sondern in Backticks (`).

Gruß hpvw

PS: Bitte nutze die Code Tags, [ php ]code[ /php ] für PHP-Quelltexte, [ html ]code[ /html ] für HTML-Quelltexte und [ code ]code[ /code ] für sonstige Quelltexte, natürlich ohne die Leerzeichen. Das macht die Quelltexte übersichtlicher. Für kurze Code-Teile im Fließtext (z.B. Variablen- oder Funktionsnamen) kannst Du [ mono ]kurzer Code-Fetzen[ /mono ] verwenden.
 
hi,
sorry ertsma konnte lange net in BOard shaune, schule....
un danke , ich werde die tipps so schnell wie es geht ausprobieren und mich nohcmal melden,

mfg phil
 
Vielen Dank.

Habe das Script mit euren Hinweisen überabeitet und uner anderem nich ein paar kleine Schusselfehler gefunden ;) , aber jetzt haut alles hin :)

-phil
 
Zurück