Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Doofes Problem [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Doofes Problem


 
OliOli
06-10-2003, 21:47 
 
Hi, hab nur ein kleines leichtes Problemchen, ist schnell gelöst, versprochen :)

Ich habe ein Bewertungssystem für meine Tutorials gemacht. Dazu folgende Funktion:



function rate_tut($tutid,$points) {
global $user_id, $db; // datenbank connection und die id aus der session lesen
$rating = $db->query_first("SELECT rating, rated, ratingcount FROM www_tut WHERE tutid=".$tutid); // bewertung, anzahl der Bewertungen und die userids, wer schon bewertet hat holen
$rate_all = $rating[rating]*$rating[ratingcount]; // durchschnitt mal Anzahl
$rate_neu = $rate_all + $points; //neue Punkte huinzufügen
$rate_neuneu = $rate_neu / ($rating[ratingcount]+1); // DUrchschnitt bilden
$rated = $user_id.",".$rating[rated]; // die userid bei rated hinzufügen
$db->query("UPDATE www_tut SET rating = ".$rating_neuneu.", ratingcount+1, rated = '".$rated."' WHERE tutid = ".$tutid); // update
echo $db->error(); // Fehler ausgeben
}

Also er updatet nichts und ich erhalte folgende Fehlermeldung:

1064 : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' ratingcount+1, rated = '1,' WHERE tutid = 1' at line 1

Ich finde den verfluchten Fehler nicht... ihr?

 
Wurzel
06-10-2003, 21:52 
 
sollte damit erledigt sein:
$db->query("UPDATE www_tut SET rating = ".$rating_neuneu.", ratingcount=ratingcount+1, rated = '".$rated."' WHERE tutid = ".$tutid); // update

 
OliOli
06-10-2003, 21:57 
 
Hab ich auch schon vorher ausprobiert, hier die Fehlermeldung:

1064 : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' ratingcount=ratingcount+1, rated = '1,' WHERE tutid = 1' at li

PS: Die Feldnamen sind korrekt, die Modi auch, also rated ist z.B. kein int Feld

 
Wurzel
06-10-2003, 22:04 
 
lass dir die zusammengesetzte query mal per echo ausgeben und schau mal was drin steht

wenn $rated den inhalt '1,' hat (sollte das nicht '1,123' oder so aussehen?) ... könnte vorher schon was schief laufen ...

 
jochenj
06-10-2003, 22:10 
 
Original geschrieben von OliOli
Hab ich auch schon vorher ausprobiert, hier die Fehlermeldung:

1064 : You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' ratingcount=ratingcount+1, rated = '1,' WHERE tutid = 1' at li

PS: Die Feldnamen sind korrekt, die Modi auch, also rated ist z.B. kein int Feld

ja und dann erklär mir mal was ratingcount=ratingcount+1 bewirkt?
hier ist weder ne variable noch eine zahl im spiel -> syntaxerror.
wie wärs damit:
$count = $ratincount++;
//und dann in deiner sqlabfrage
...ratincount='".$count."'...


hoffe das wars;)

 
OliOli
06-10-2003, 22:12 
 
hm, war ein schreibfehler in den Variablen, einmal hab ich rate_neuneu und einmal rating_neuneu. Jetzt gehts, danke!

 
Wurzel
06-10-2003, 22:19 
 
Original geschrieben von jochenj
ja und dann erklär mir mal was ratingcount=ratingcount+1 bewirkt?
hier ist weder ne variable noch eine zahl im spiel -> syntaxerror.
wie wärs damit:
$count = $ratincount++;
//und dann in deiner sqlabfrage
...ratincount='".$count."'...
hoffe das wars;)
nö, was du da aufziehst ist blödsinn, da mysql int-felder auf diese art aufaddieren kann ... mit anderen worten, bei deinem weg brauchst du 2 db-abfragen (1x select, 1x update) mit 'feldname=feldname+1' reicht eine abfrage ;) ... in dem fall ^^ ist es zwar wurscht, weil das select sowieso läuft, aber ...

 
jochenj
06-10-2003, 22:32 
 
ok, war mein fehler:( hab in der doku nicht richtig gelesen, bzw. diese art von increment übersehen, wieder was gelernt und sei dir gewiss, dieser fehler kommt nicht mehr vor. man will sich ja weiterentwickeln

PS. bitte antworte nicht mit "dein Wort in....":p

 
Wurzel
06-10-2003, 22:44 
 
tröste dich ... ich lern' auch täglich was dazu ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:53 Uhr.