• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit BIGINT

T!P-TOP

Mitglied
Hi leute,

habe ein Problem bei einer Abfrage:

PHP:
//....
        $abfragen = "SELECT `bewertung` FROM `websites` WHERE `id` = ".$website;
        $aktuelleBewertung = mysql_query($abfragen);

echo $aktuelleBewertung;
//....
Also, `bewertung` ist eine Spalte in der Tabelle websites. Diese Spalte hat als Typ BIGINT.
Derzeit habe ich in der Tabelle websites 7 Websiten, diese haben in der Spalte `bewertung` alle den Wert 0 - da sie noch niemand bewertet hat.
Jedenfalls will ich jetzt mit den oben stehenden Code abfragen, welche Werte die Spalte `bewertung` hat. Da der Wert in allen Zeilen 0 ist, müsste er mir, wenn ich die variable $aktuelleBewertung mit echo ausgebe, auch eine 0 ausgeben, stattdessen erhalte ich immer folgende Meldung:

Wieso gibt er mir nicht 0 aus?? Ich brauche nähmlich genau den Wert, der in der Bewertungsspalte steht, denn:

In meinem Bewertungssystem kann ein User eine Website entweder mit einer Guten Stimme oder mit einer schlechten bewerten. Eine gute Stimme entspricht (int)1, eine schlecht entspricht (int)-1.

meine Rechnung sieht so aus:
Neue Bewertung = Variable aktuelle Bewertung(die ich vorher abfrage) + userBewertung (1 oder -1)
...enspricht in php:

PHP:
$newBewertung = $aktuelleBewertung + $bewertung;
Problem ist aber, das ich wohl kaum folgende rechnung durchführen kann:

$newBewertung = Resource id #9 + 1 (bzw. -1);

Könnt ihr mir bitte auf dir Sprünge helfen? :smile:

grüße,
T!P_TOP
 
Ja true und Flase, jetzt is es natürlich klar. Hm was muss ich verwenden? mysql_fetch_object?

also so ca

$query = mysql_query($query);
$rows = mysql_fetch_object($query);

?
 
Ich habe doch nur einen Wert den ich abfrage - zB frage ich den Wert der Spalte Bewertung in der Zeile 3 ab. Der ist dort auf 0, ich bekomm nur einen Datensatz zurückgeliefert. Da brauch ich doch keine Schleife, für einen Datensatz!? Oder doch?
 
Nein, da kannst du auch ganz einfach sowas wie $row = mysql_fetch_object( $query ); verwenden. Ich habe nur im Groben die Vorgehensweise geschildert.
 
Ist eben nicht so! mysql_query liefert für bestimmte Abfragen eine Ressource zurück Oder false im Falle des Misserfolges. Bei den restlichen lediglich true oder false.
Nur für SELECT, EXPLAIN, SHOW oder DESCRIBE Anweisungen liefert mysql_query() eine Ressourcen-Kennung oder FALSE, falls die Anfrage nicht korrekt ausgeführt wurde. Für alle anderen SQL Anweisungen ist der Rückgabewert von mysql_query() im Erfolgsfall TRUE, im Fehlerfall FALSE.
 
Ich habe doch nur einen Wert den ich abfrage - zB frage ich den Wert der Spalte Bewertung in der Zeile 3 ab. Der ist dort auf 0, ich bekomm nur einen Datensatz zurückgeliefert. Da brauch ich doch keine Schleife, für einen Datensatz!? Oder doch?

Auch diese Frage sollte sich doch einfach mit den wirklich kurzen aber vollständigen Erklärungen lösen lassen.
 
Zurück
Oben