login  Naam:   Wachtwoord: 
Registreer je!
 Forum

query wordt niet altijd uitgevoerd. (Opgelost)

Offline Dlol - 16/03/2008 12:23 (laatste wijziging 16/03/2008 12:24)
Avatar van DlolLid Hallo,

Ik ben momenteel bezig met een soort van paardenrace spel te maken. In de tabel `horses` staan alle gegevens opgeslagen van de paarden, naam, id, van welke user het paard is, de snelheid, maar vooral de gewonnen racen, de racen waar het paard 2des was en het totaal aantal racen.
Nu is er een probleem. Na de race wordt je doorgestuurd naar results.php, waar-ie dan de tabel update. Voor het paard dat gewonnen is zet hij wins op wins+1, voor het paard dat tweedes was seconds op seconds+1 etc. Op het einde zet-ie ook nog voor elk paard totalraces op totalraces+1.
Maar nu krijg ik soms dit in mijn database: wins=1, seconds=1, totalraces=3?? Ook dit komt wel eens voor: wins=4, seconds=6, totalraces=5... Iemand een idee wat er verkeerd gaat?


Dit is de code:
  1. <?php
  2. $aantal = $_POST['racewith'];
  3. $user = "***";
  4. $pass = "***";
  5. $host = "localhost"; // Maakt verbinding met de database
  6. $db = "horseracing";
  7. $connection = mysql_connect($host, $user, $pass) or die(mysql_error());
  8. mysql_select_db($db, $connection) or die(mysql_error());
  9.  
  10.  
  11.  
  12. if ($aantal == 2) { // Als de race met twee paarden was
  13.  
  14. $places = array();
  15. for ($i=0;$i<$aantal;$i++) { // Sorteert de afgelegde afstanden van groot naar klein
  16. array_push($places, $_POST['horse' . $i . 'dist']);
  17. }
  18. sort($places);
  19. $places = array_reverse($places);
  20. if ($places[0] == $_POST['horse0dist']) { // Bepaalt het id van de eerste en de tweede
  21. $first = $_POST['horse0name'];
  22. $second = $_POST['horse1name'];
  23. }
  24. else {
  25. $first = $_POST['horse1name'];
  26. $second = $_POST['horse0name'];
  27. }
  28.  
  29.  
  30. $query = "SELECT wins FROM horses WHERE id='$first';"; // Bepaalt het aantal gewonnen wedstrijden van de eerste
  31. $result = mysql_query($query);
  32. $array = mysql_fetch_array($result);
  33. $wins = $array[0];
  34. $wins++;
  35. $query = "UPDATE horses SET wins='$wins' WHERE id='$first';";
  36. $result = mysql_query($query);
  37. $intwins = intval($wins/3);
  38. $nointwins = $wins/3;
  39. if ($intwins == $nointwins) {
  40. $query = "UPDATE horses SET speedfactor=speedfactor+0.05 WHERE id='$first';";
  41. echo "$query";
  42. $result = mysql_query($query);
  43. }
  44.  
  45. $query = "SELECT wins FROM horses WHERE id='$second';";
  46. $result = mysql_query($query);
  47. $array = mysql_fetch_array($result);
  48. $seconds = $array[0];
  49. $seconds++;
  50. $query = "UPDATE horses SET seconds='$seconds' WHERE id='$second';";
  51. $result = mysql_query($query);
  52. $query = "UPDATE horses SET totalraces=totalraces+1 WHERE id='".$_POST['horse0name']."' OR id='".$_POST['horse1name']."';";
  53. mysql_query($query);
  54. // header("location:race.php?horses=2");
  55. }
  56. ?>


dank bij voorbaat!

4 antwoorden

Gesponsorde links
Offline giellexe - 16/03/2008 15:13
Avatar van giellexe MySQL interesse ik zou de $query allemaal een cijfer geven ;)
$query1 =
$query2 =

Enzo verder
Offline Stefan14 - 16/03/2008 18:26
Avatar van Stefan14 PHP gevorderde zoals giel inderdaad zegt, je overschrijft nu steeds je variabelen.

Vergeet de results ook niet te nummeren.
Offline ranco - 16/03/2008 18:49
Avatar van ranco PHP gevorderde Je kan een getal doormiddel van een query erg makkelijk met 1 ophogen.

Namelijk zo:

  1. UPDATE TABLE SET veldnaam=veldnaam+1


Als je dit voor al je query's aanpast dan gaat dit werken
Offline Dlol - 16/03/2008 20:45
Avatar van Dlol Lid Ik heb het ondertussen al gevonden  
De fout zat-em hier:
  1. $query = "SELECT wins FROM horses WHERE id='$second';";

Hij selecteerde het aantal gewonnen racen van het paard dat tweede werd.
Maar ranco, bedankt voor je tip, dat maak thet inderdaad een paak eenvoudiger en overzichtelijker.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.344s