login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Credits systeem

Offline bigsmoke - 06/05/2006 14:28
Avatar van bigsmokePHP interesse Weet iemand de juiste manier om dit te doen werken??
  1. $messlength = strlen($content);//25
  2. $messlength = $messlength / 25;//25 : 25 = 1 credits for 25 charters.
  3. $update = mysql_query("UPDATE members SET posts=posts+1 SET credits=[b]credits+$messlength[/b] WHERE id = '$id1' AND username = '$username'") or die(mysql_error());


Ik krijg namelijk altjd deze error.

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 'SET credits=credits+0.6 WHERE...

17 antwoorden

Gesponsorde links
Offline Voldemort - 06/05/2006 14:30
Avatar van Voldemort PHP ver gevorderde Quotes zetten, dat is verplicht behalve bij een fieldname+int. En haal verder je variablen buiten de quotes. Het moet dus worden:

  1. $messlength = strlen($content);//25
  2. $messlength = $messlength / 25;//25 : 25 = 1 credits for 25 charters.
  3. $update = mysql_query("UPDATE members SET posts=posts+1 SET credits='[b]credits+$messlength[/b]' WHERE id = '".$id1."' AND username = '".$username."'") or die(mysql_error());
Offline GTW - 06/05/2006 14:31
Avatar van GTW Gouden medaille

PHP gevorderde
je moet iig je variabelen buiten quotes zetten...

dus '".$messlength."'
enz
Offline Gerard - 06/05/2006 14:34
Avatar van Gerard Ouwe rakker en een integer veld kan natuurlijk nooit een float value erin gooien (0.6), maak dus gebruik van round().
Offline bigsmoke - 06/05/2006 14:42 (laatste wijziging 06/05/2006 14:43)
Avatar van bigsmoke PHP interesse kan goed zijn maar ik blijf not altijd die error krijgen nadat ik gedaan had wat je zei. Kan het aan iets in de db liggen ofzo?

Edit: Ja maar hoe moet ik het dan aanpassen dat ik er wel gebruik van kan maken text nemen ipv int ofzo?
Offline Gerard - 06/05/2006 15:04 (laatste wijziging 06/05/2006 15:06)
Avatar van Gerard Ouwe rakker 2 keer SET in je query is ook niet goed ofcourse

  1. <?php
  2. $qUpdateCredits = mysql_query("UPDATE members
  3. SET posts = posts + 1,
  4. credits = credits + ".round((strlen($content)/25), 0)."
  5. WHERE id = '".$id1."'
  6. AND username = '".$username."'") or die(mysql_error());
  7. ?>
Offline bigsmoke - 06/05/2006 15:09
Avatar van bigsmoke PHP interesse Had ik nog niet opgemerkt:p

ne maar hoe kan ik dan tch die credits updaten met vb 0.48?? Welk type moet ik dan gebruiken??:s :?:
Offline Gerard - 06/05/2006 15:10 (laatste wijziging 06/05/2006 15:12)
Avatar van Gerard Ouwe rakker zoals ik al eerder zei, round(), zoals ook in mijn voorbeeld staat.
Als iemand minder dan 12 tekens heeft neergezet is dat toch geen credit waard?

edit als je vindt van wel dan moet je ipv PHP.net: round gebruik maken van PHP.net: ceil.
Offline bigsmoke - 06/05/2006 15:13
Avatar van bigsmoke PHP interesse Ja maar ik wil dat hij dan vb 0.51 add. zodat het altijd ies waard is
Offline Gerard - 06/05/2006 15:15
Avatar van Gerard Ouwe rakker Dit is logisch nadenken, hier ga ik geen antwoord op geven.
Offline bigsmoke - 06/05/2006 15:18
Avatar van bigsmoke PHP interesse Wat bedoel je?
Offline Gerard - 06/05/2006 15:20
Avatar van Gerard Ouwe rakker
  1. <?php
  2. function fairRound($fCredits) {
  3.  
  4. return ($fCredits < 0.5 ? ceil($fCredits) : round($fCredits, 0));
  5.  
  6. }
  7.  
  8. $qUpdateCredits = mysql_query("UPDATE members
  9. SET posts = posts + 1,
  10. credits = credits + ".fairRound((strlen($content)/25))."
  11. WHERE id = '".$id1."'
  12. AND username = '".$username."'") or die(mysql_error());
  13. ?>
Offline webstab - 06/05/2006 15:20
Avatar van webstab PHP ver gevorderde
Citaat:
float round ( float val [, int precision] )

Geeft de afgeronde waarde van val met de gespecificeerde precision (aantal cijfers achter de komma). precision kan ook negatief zijn of 0 (standaard).
  1. echo round(3.4); // 3
  2. echo round(3.5); // 4
  3. echo round(3.6); // 4
  4. echo round(3.6, 0); // 4
  5. echo round(1.95583, 2); // 1.96
  6. echo round(1241757, -3); // 1242000

Lezen op php.net => round(getal, aantal cijfers na komma)
Offline bigsmoke - 06/05/2006 16:45
Avatar van bigsmoke PHP interesse Ik denk dat jullie me niet begrijpen:s

Ik wil als het aantal credits 0.45 is 0.45 toevoegen in de db proximus en niet 0.

@Webstab weet ik maar ik krijg geen kommagetallen in de db...:s
Offline Simon - 06/05/2006 17:27
Avatar van Simon PHP expert gebruik DECIMAL of VARCHAR ipv INT
Offline Maarten - 06/05/2006 20:47
Avatar van Maarten Erelid VARCHAR??????????????????????
Ga vissen man 
Leer eerst eens de veldtypes van MySQL en reply dan zinvol.
FLOAT werkt ook, maar in godsnaam geen VARCHAR 
Offline Gerard - 06/05/2006 21:01
Avatar van Gerard Ouwe rakker http://www.goog...n&meta=

alvast 
Offline bigsmoke - 07/05/2006 11:55
Avatar van bigsmoke PHP interesse Met float werkte het....
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.223s