login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Probleempje met optellen

Offline viezevis - 28/02/2005 02:01 (laatste wijziging 28/02/2005 02:03)
Avatar van viezevisHTML interesse Ik heb het volgende script gemaakt om de topschuttersstand van een zaalvoetbalploegje bij te houden. Het probleem is echter dat hij enkel bij de eerste (peter) de waarde daadwerkelijk optelt maar bij de andere waarden wordt de ingegeven waarde gewoon in de tabel gezet ipv de som van de waarde uit de tabel en de ingevoerde waarde... Iemand enig idee?

Alvast bedankt!

  1. <? if (isset($_POST["send"])) {
  2. include('config.php');
  3. $result = mysql_query("SELECT score FROM topschutters") or die (mysql_error());
  4. $huidigestand = mysql_fetch_row($result);
  5. $score = array($peter, $filip, $roeland, $yves, $evert, $karelh, $maarten, $karelb, $yannick, $toon);
  6.  
  7. for($i=0; $i <= sizeof($score); $i++) {
  8. $totaal = $huidigestand[$i] + $score[$i];
  9. mysql_query("UPDATE topschutters SET score = $totaal WHERE id = $i") or die (mysql_error());
  10. } echo("Topschuttersstand gewijzigd"); }
  11.  
  12.  
  13. else {
  14. echo ("<form method='post' action='topschutters.php?method=POST'><table border='1'>
  15. <tr>
  16. <td>Naam:</td>
  17. <td>Goals:</td>
  18. </tr>
  19. <tr>
  20. <td>Peter</td>
  21. <td><input name='peter' type='text' id='peter' size='3' maxlength='3'></td>
  22. </tr>
  23. <tr>
  24. <td>Filip</td>
  25. <td><input name='filip' type='text' id='filip' size='3' maxlength='3'></td>
  26. </tr>
  27. <tr>
  28. <td>Roeland</td>
  29. <td><input name='roeland' type='text' id='roeland' size='3' maxlength='3'></td>
  30. </tr>
  31. <tr>
  32. <td>Yves</td>
  33. <td><input name='yves' type='text' id='yves' size='3' maxlength='3'></td>
  34. </tr>
  35. <tr>
  36. <td>Evert</td>
  37. <td><input name='evert' type='text' id='evert' size='3' maxlength='3'></td>
  38. </tr>
  39. <tr>
  40. <td>Karel H.</td>
  41. <td><input name='karelh' type='text' id='karelh' size='3' maxlength='3'></td>
  42. </tr>
  43. <tr>
  44. <td>Maarten</td>
  45. <td><input name='maarten' type='text' id='maarten' size='3' maxlength='3'></td>
  46. </tr>
  47. <tr>
  48. <td>Karel B. </td>
  49. <td><input name='karelb' type='text' id='karelb' size='3' maxlength='3'></td>
  50. </tr>
  51. <tr>
  52. <td>Yannick</td>
  53. <td><input name='yannick' type='text' id='yannick' size='3' maxlength='3'></td>
  54. </tr>
  55. <tr>
  56. <td>Toon</td>
  57. <td><input name='toon' type='text' id='toon' size='3' maxlength='3'></td>
  58. </tr>
  59. <tr>
  60. <th colspan='2' scope='row'><input name='send' type='submit' id='send' value='Update'></th>
  61. </tr>
  62. </table>
  63. </form>"); }?>


P.S.: Het is misschien niet het mooiste script maar ik ben dan ook een beginneling op het vlak van php en mysql...

8 antwoorden

Gesponsorde links
Offline Thomas - 30/11/1999 00:00
Avatar van Thomas Moderator In $huidigestand staat maar één resultaatrij uit de tabel topschutters. Hoe is deze tabel opgebouwd
Offline viezevis - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van viezevis HTML interesse De tabel(in de db) is opgebouwd uit 10 rijen (1 rij per speler) en 2 kolommen, nl de namen en de score.rnrnBedoel je dat ik eigelijk enkel de eerste rij ophaal en dat ik dus eigenlijk een while loop rond die mysql_fetch_row moet zetten of heb ik het hier verkeerd)
Offline Thomas - 30/11/1999 00:00
Avatar van Thomas Moderator Je haalt alleen de score op, hoe weet je dan welke score bij welke speler hoort rnMisschien kun je beter eerst een soort van score-array aanleggen voor elke speler rnBijvoorbeeld $score['peter'] = 5, $score['filip'] = 3 et cetera rnEn dan daar die punten uit je formulier bij optellen en dan het zaakje updaten
Offline viezevis - 30/11/1999 00:00
Avatar van viezevis HTML interesse Daar had ik eerst ook aan gedacht maar is het dan nog mogelijk om deze op te halen in een for loop mbv die index Of moet je dan elke waarde apart optellen
Offline Thomas - 30/11/1999 00:00
Avatar van Thomas Moderator Het kan met een for-lus (twee zelfs).rnEerst haal je met een query de waarden op uit je database, en stop je ze in een array (naam-score paren).rnDaarna update je (als het formulier gesubmit is) de waarden in dat array, en vervolgens gebruik je dit array om (met behulp van weer een for-lus) de waarden in je database te updaten.
Offline viezevis - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van viezevis HTML interesse Toch nog een klein maar zeer vervelend probleem, ik heb dus in het formulier nu de id overal gedefinieerd door de namen uit de db op te halen en dan via id='top echo ($stand['naam']); (die top staat ervoor omdat ik overal nog een 2e veld heb staan met een andere score die dan ipv top mvdm ervoor heeft staan) en nu had ik al de ingevoerde waarden in een array willen krijgen mbv een while loop maar nu heb ik een probleem met die top ervoor, ik gebruik de volgende code maar krijg hierbij steeds de error unexpected T_VARIABLErnrn[code]while ($stand2 = mysql_fetch_assoc($result)) {rn$tscore[] = $top$stand2['naam'];rn$mscore[] = $mvdm$stand2['naam'];}[code] bij bv de eerste naam(peter) zou ik dus gewoon de variabele $toppeter willen krijgen enz.Ik heb al op verschillenden manieren geprobeert maar krijg altijd wel een of andere error...
Offline Dennisvb - 30/11/1999 00:00
Avatar van Dennisvb MySQL ver gevorderde Je kunt variabelen aan elkaar maken door er een punt tussen te zettenrnrn[code]while ($stand2 = mysql_fetch_assoc($result)) {rn$tscore[] = $top.$stand2['naam'];rn$mscore[] = $mvdm.$stand2['naam'];rn}rn[code]rnrnDan moet je wel de variabele top defineren dat het top weergeeft
Offline viezevis - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van viezevis HTML interesse Nu krijg ik de error niet meer en lijkt het te werken alleen worden de ingegeven scores om een of andere reden niet opgeteld bij de huidige waarde, ziet iemand mss de fout want ik zie ze niet...rnIk had eventueel gedacht dat het probleem kon liggen aan het feit dat er spaties voorkomen in de namen aangezien deze zowel voor- als familienaam bevatten en dus ook de id's die het formulier meekrijgt spaties bevatten, maar ik weet niet zeker of dit een probleem is of nietrn[code] if (isset($_POST[send])) { rninclude('config.php');rn$result = mysql_query(SELECT FROM klassementen ORDER BY 'id' ASC) or die (mysql_error());rn$top = top;rn$mvdm = mvdm;rnwhile ($stand = mysql_fetch_array($result)) { rn$topstand[$stand['id']] = $stand['topscore'];rn$mvdmstand[$stand['id']] = $stand['mvdmscore']; }rnrnwhile ($stand2 = mysql_fetch_array($result)) {rn$tscore[] = $top.$stand2['naam'];rn$mscore[] = $mvdm.$stand2['naam'];}rn rnfor($i=0; $i = sizeof($tscore); $i++) { rn$toptotaal = $topstand[$i] + $tscore[$i];rn$mvdmtotaal = $mvdmstand[$i] + $mscore[$i];rnmysql_query(UPDATE klassementen SET topscore = $toptotaal, mvdmscore = $mvdmtotaal WHERE id = $i) or die (mysql_error());rn} echo(Klassementen gewijzigd); }rnrnrnelse { rnrnform method='post' action='klassementen.phpmethod=POST'table border='1'rn trrn tdNaamtdrn tdGoalstdrn tdMvdmtdrn trrn include ('config.php');rn$result2 = mysql_query(SELECT naam FROM klassementen ORDER BY 'id' ASC);rnwhile ($namen = mysql_fetch_assoc($result2)) { rn trrn td echo($namen['naam']); tdrn rntdinput name='top echo ($top.$namen['naam']); ' type='text' id='top echo($namen['naam']); ' size='3' maxlength='3'tdrn tdinput name='mvdm echo ($mvdm.$namen['naam']); ' type='text' id='mvdm echo($namen['naam']); ' size='3' maxlength='3'tdrntr } rnth colspan='3' scope='row'input name='send' type='submit' id='send' value='Update'thrntablernform } [code]
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.233s