Datenbankarbeit mit Zahlen

PHPFlo

Mitglied
Hi Leute,
Hoffentlich könnt ihr mir mal helfen, ich habe ein Problem:
Code:
$variable_credit = mysql_query("SELECT credits FROM $table WHERE name='$name'");
$aendern = "UPDATE test_table Set credits = '$variable_credit;' WHERE name = '$name'";
$update = mysql_query($aendern);
Und es ist so,dass ich demjenigen nicht alles sondern nur eins wegnehmen will,aber es ist so,dass z.Z. immer alle "Credits" weggehen,es gibt zwei varianten,entweder es liegt daran,dass ich alle alle credits SELECTE statt nur einem,oder ich ziehe alle ab,aber kann man nur einen Credit von credits makieren,geht das,dass man nur eins aus einer bestimmten Spalte Tabelle holt?
 
Mal abgesehen davon, dass dein Code lauter Fehler enthält:
Was hälst du hiervon?
PHP:
nysql_query(sprintf("UPDATE `test_table` SET `credits`=`credits`-%u WHERE`name`='%s';", (int)$iWegNehmen, $sName));
 
Na da fehlt soweit ich das sehe einiges.
Du holst die mit dem select in mysql_quer() nur eine
resource die du mit mysql_fetch_irgendwas (.z.b mysql_fetch_assoc) erstmal
auslesen musst, bevor du sie weiterverarbeiten kannst, wie
z.b. in deinem update.
D.h. du müsstest dann alles auslesen was dein select zurückgibt,
deiner Aussage zu folgen kann der Fall eintreten, dass mehrere Credits auslgelesen werden.
Also musst du das Ergebnis z.B. so auslesen
PHP:
 $select = mysql_query(  " DEIN SELECT " );
( ! is_resource($select) ) ? ( die("MySQL-Fehler: ".mysql-error()) ) : NULL;
while( $row = mysql_fetch_assoc($select) )
{
  // pro durchlauf wird eine gefundene Datenzeile ausgegeben
  // in einem Assoziativen Array
  // Wie du dieses verabeitest ist nun deine Entscheidung
}
// jetzt oder zu einem bestimmten Element des Ararys in der While-Schleife
// kann das Update erfolgen.

Des weiteren müsste das ; in dem update falsch sein, also weglassen.
Um diesen eventuellen Fehler beim update von der DB abzufragen würde
ich noch folgendes einbauen:

PHP:
( ! $update ) ? ( die("MySQL-Fehler: ".mysql_error()) ) : NULL;
 
Zuletzt bearbeitet:
Now

Also ich habe es jetzt so:
$select = mysql_query("SELECT credits FROM $table WHERE name='$name'");
( ! is_resource($select) ) ? ( die("MySQL-Fehler: ".mysql-error()) ) : NULL;
while( $row = mysql_fetch_assoc($select) )
{
// pro durchlauf wird eine gefundene Datenzeile ausgegeben
// in einem Assoziativen Array
// Wie du dieses verabeitest ist nun deine Entscheidung
}
// jetzt oder zu einem bestimmten Element des Ararys in der While-Schleife
// kann das Update erfolgen.
$aendern = "UPDATE test_table Set credits = '$row--' WHERE name = '$name'";
$update = mysql_query($aendern);
Aber das ändert nichts ;)
Und bei der anderen Methode wird garkeiner abgezogen :(
 
Zuletzt bearbeitet:
Zurück