login  Naam:   Wachtwoord: 
Registreer je!
 Forum

kan dit Db vriendelijker? (Opgelost)

Offline Martijn - 29/09/2008 15:00 (laatste wijziging 29/09/2008 15:07)
Avatar van MartijnCrew PHP
  1. <?php
  2. include_once"../connect.php";
  3. $tijdmin15=time()-60*15;
  4.  
  5. mysql_query("UPDATE extra SET dronkenheid=dronkenheid-5 WHERE dronkenheid<=20") or die(mysql_error());
  6. mysql_query("UPDATE extra SET dronkenheid=dronkenheid-10 WHERE dronkenheid>20 AND dronkenheid<=40") or die(mysql_error());
  7. mysql_query("UPDATE extra SET dronkenheid=dronkenheid-15 WHERE dronkenheid>40 AND dronkenheid<=60") or die(mysql_error());
  8. mysql_query("UPDATE extra SET dronkenheid=dronkenheid-25 WHERE dronkenheid>60 AND dronkenheid<=80") or die(mysql_error());
  9. mysql_query("UPDATE extra SET dronkenheid=dronkenheid-30 WHERE dronkenheid>80") or die(mysql_error());
  10. mysql_query("UPDATE extra SET dronkenheid=0 WHERE dronkenheid<0") or die(mysql_error());
  11.  
  12. mysql_query("UPDATE extra SET maxdrank=maxdrank-1 WHERE maxdrank>100 AND maxdrank<=110") or die(mysql_error());
  13. mysql_query("UPDATE extra SET maxdrank=maxdrank-2 WHERE maxdrank>110 AND maxdrank<=120") or die(mysql_error());
  14. mysql_query("UPDATE extra SET maxdrank=maxdrank-3 WHERE maxdrank>120 AND maxdrank<=130") or die(mysql_error());
  15. mysql_query("UPDATE extra SET maxdrank=maxdrank-4 WHERE maxdrank>130 AND maxdrank<=140") or die(mysql_error());
  16. mysql_query("UPDATE extra SET maxdrank=maxdrank-5 WHERE maxdrank>140 AND maxdrank<=150") or die(mysql_error());
  17. mysql_query("UPDATE extra SET maxdrank=maxdrank-6 WHERE maxdrank>150 AND maxdrank<=160") or die(mysql_error());
  18.  
  19. mysql_query("DELETE FROM drank WHERE datum<".$tijdmin15) or die(mysql_error());
  20.  
  21. ?>


naja, ik denk dat de code + titel voldoende zeggen 

edit: toch kleine uitleg dit moet eest per 5min worden uitgevoert lijkt me een hoop queries

23 antwoorden

Gesponsorde links
Offline vinTage - 29/09/2008 15:10
Avatar van vinTage Nieuw lid Mwah, 10 querys per 5 minuten is toch niks...
Op sima's index staan sosieso al een stuk of 12 querys (minimaal) alleen al voor:
online
nieuws (bovenin)
nieuws (content)
nieuwe =>van allerlei meuk

Dit maal een stuk of 10 inhits per minuut...
Offline Martijn - 29/09/2008 15:13
Avatar van Martijn Crew PHP naja, toch heb ik t liever wat voorzichtiger mn server kan wel wat hebben, maar wil t wel graag zo laag mogelijk houden.
Offline vinTage - 29/09/2008 15:14
Avatar van vinTage Nieuw lid off
Als hij dit niet aankan zou ik gelijk naar een andere host gaan 
Offline Mad_Mike - 29/09/2008 15:19
Avatar van Mad_Mike PHP beginner Ik denk dat ik begrijp wat TS bedoelt...

"De verschillende queries lijken erg op elkaar, dus is het niet mogelijk om ze (deels) samen te voegen...?"

Volgens mij kan dat in dit geval niet. De queries lijken veel op elkaar, echter voeren ze allemaal iets unieks uit wat niet samen te voegen valt.

En zoals al vermeld is, 10queries per 5min is echt NIETS ;)
Offline vinTage - 29/09/2008 15:21
Avatar van vinTage Nieuw lid mysql_query kan maar één query per request aan, dus ben je al gauw uitgelult als je 2 dingen wilt doen (laat staan 10) 
Offline Martijn - 29/09/2008 15:22
Avatar van Martijn Crew PHP naja, zoiets dacht ik al. maar wie weet was er een moeilijkere query die t in 1x kan uitvoeren. Ik laat m nog ff staan, anders haal k t topic weer uit active 
Offline vinTage - 29/09/2008 15:23
Avatar van vinTage Nieuw lid Ik ben hier ooit wel eens mee bezig geweest, maar mij lukte het niet, misschien jouw wel ? 
Offline Kr4nKz1n - 29/09/2008 15:29
Avatar van Kr4nKz1n Onbekend
vinTage schreef:
Ik ben hier ooit wel eens mee bezig geweest, maar mij lukte het niet, misschien jouw wel ? 
Zat ik net ook naar te kijken. Maar daar wordt het niet mooier op etc.
Offline Martijn - 29/09/2008 15:37 (laatste wijziging 29/09/2008 15:39)
Avatar van Martijn Crew PHP Ik zal even hardop denken, volgende mij is dit wel aardig goed:
mysql_query("
  1. UPDATE extra
  2. IF dronkenheid<=20 THEN SET dronkenheid = dronkenheid-5 END IF;
  3. IF dronkenheid>20 AND dronkenheid<=40 THEN SET dronkenheid = dronkenheid-10 END IF;
  4. IF dronkenheid>40 AND dronkenheid<=60 THEN SET dronkenheid = dronkenheid-15 END IF;
  5. IF dronkenheid>60 AND dronkenheid<=80 THEN SET dronkenheid = dronkenheid-20 END IF;
  6. IF dronkenheid>80 THEN SET dronkenheid = dronkenheid-25 END IF;

") or die(mysql_error());
Offline Kr4nKz1n - 29/09/2008 15:38
Avatar van Kr4nKz1n Onbekend Je hebt natuurlijk ook elseif
Offline vinTage - 29/09/2008 15:40
Avatar van vinTage Nieuw lid Ik krijg daar alleen maar errors mee 
Offline Martijn - 29/09/2008 15:40 (laatste wijziging 29/09/2008 15:40)
Avatar van Martijn Crew PHP ja maar de elseif word niet meer uitgevoerd na een if

bovenstaande code leverd:

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 'IF dronkenheid<=20 THEN SET dronkenheid = dronkenheid-5 END IF; IF dronkenheid>' at line 2
Offline Kr4nKz1n - 29/09/2008 15:41
Avatar van Kr4nKz1n Onbekend Ja maar een ElseIf hoeft ook niet uitgevoerd te worden na een If
Offline Martijn - 29/09/2008 15:43
Avatar van Martijn Crew PHP maar dat wil ík wel dus dan wordenhet automatisch allemaal ifjes, want elke moet afzonderlijk worden gedaan
Offline Kr4nKz1n - 29/09/2008 15:44
Avatar van Kr4nKz1n Onbekend Want? Je bewerkt telkens het veld dronkenheid. Agja zal wel weer aan mij liggen.
Offline vinTage - 29/09/2008 15:44 (laatste wijziging 29/09/2008 15:45)
Avatar van vinTage Nieuw lid Werkt die query bij jullie wel dan, ik krijg het geeneens voor elkaar met één regeltje... 

  1. IF iq<=30 THEN SET iq = iq-5 END IF;
  2. ") or die(mysql_error());


Citaat:
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 'IF iq<=30 THEN SET iq = iq-5 END IF' at line 1


MySQL 5.0.27-community-nt draait op localhost.....
Offline Martijn - 29/09/2008 15:46 (laatste wijziging 29/09/2008 15:51)
Avatar van Martijn Crew PHP ik heb dr al bij staan 'UPDATE extra' want anders geef je m geen tabel wat ie moet doen, maar geen succes

ik heb nu dit, maar geen succes:
  1. mysql_query(" UPDATE extra
  2. BEGIN
  3. DECLARE dronkenheid tinyint(3);
  4. IF dronkenheid<=20 THEN SET dronkenheid = dronkenheid-5 END IF;
  5. IF dronkenheid>20 AND dronkenheid<=40 THEN SET dronkenheid = dronkenheid-10 END IF;
  6. IF dronkenheid>40 AND dronkenheid<=60 THEN SET dronkenheid = dronkenheid-15 END IF;
  7. IF dronkenheid>60 AND dronkenheid<=80 THEN SET dronkenheid = dronkenheid-20 END IF;
  8. IF dronkenheid>80 THEN SET dronkenheid = dronkenheid-25 END IF;
  9. END
  10. ") OR die(mysql_error());




volgens mij is dat voorbeeld ook alleen voor een selectquery
Offline Giant - 29/09/2008 16:39
Avatar van Giant PHP beginner welke fout krijg je nu dan?
Offline Martijn - 29/09/2008 16:42
Avatar van Martijn Crew PHP zelfde als de hele tijd. Heb t maar weer gezet zoals ik het had 
Offline Richard - 29/09/2008 23:18
Avatar van Richard Crew algemeen
  1. UPDATE
  2. extra
  3. SET
  4. dronkenheid = CASE
  5. WHEN
  6. dronkenheid <= 20
  7. THEN
  8. dronkenheid - 5
  9. WHEN
  10. dronkenheid BETWEEN
  11. 20 AND 40
  12. THEN
  13. dronkenheid - 10
  14. WHEN
  15. dronkenheid BETWEEN
  16. 40 AND 60
  17. THEN
  18. dronkenheid - 15
  19. WHEN
  20. dronkenheid BETWEEN
  21. 60 AND 80
  22. THEN
  23. dronkenheid - 20
  24. WHEN
  25. dronkenheid > 80
  26. THEN
  27. dronkenheid - 25
  28. END CASE


Dit zou ook moeten werken.
Offline Martijn - 29/09/2008 23:24 (laatste wijziging 29/09/2008 23:30)
Avatar van Martijn Crew PHP END CASE moet gewoon END zijn, en dan werkt ie ja, bedankt, dat was precies wat ik zocht (^^,)

edit: Ik laat het topic nog even staan, denk dat andere wel geïnteresseerd zijn hierin.
Offline Richard - 30/09/2008 17:07
Avatar van Richard Crew algemeen Typisch dat de MySQL documentatie zelf END CASE aangeeft, daar raak ik ook steeds weer van in de war. :']
Offline Martijn - 04/01/2009 16:30
Avatar van Martijn Crew PHP toch nog een toevoeging voor andere, bij bleek dit toch niet te werken 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.253s