Ik ben bezig met een formulier aan het maken voor het verwerken van topscorers.

De bedoeling is dit:

Topscorer:
Naam Goals Goals erbij
michel 8 [invoervakje]
verzenden
zie www.quickboysb5.nl/a6/top_uit_toevoegen.php

Als je op verzenden drukt worden de goals met de goals erbij opgeteld
dus bijvoorbeeld 8+1 = 9

Op dit moment heb ik deze code:

<?
require_once("connect.php");
$verstuurd=0;
if($_SERVER['REQUEST_METHOD']=='POST'){
$verstuurd=1;
}
if($verstuurd==0) {

?>
<h2>Topscorer uitslagen toevoegen</h2>
<form name="uitslagen_toevoeg" action="<?php echo $_SERVER['PHP_SELF']; ?>" method=POST onSubmit="return confirm('Alle uitslagen worden aangepast, akkoord?')">
<table><tr><td>Naam</td><td>Goals</td><td>Goals erbij</td></tr>
<?
$res = mysql_query("SELECT * FROM topscorer Order by goals") or die (mysql_error()) ;
while ($row = mysql_fetch_assoc($res)) {
$top_naam = $row["top_naam"];
$goals = $row["goals"];
$top_id = $row["top_id"];

echo "<tr><td>$top_naam</td><td align=right><input maxlenght=2 size=2 type=hidden alt=".$goals." name=goals".$top_id." value=".$goals.">$goals</td><td><input maxlenght=2 size=2 type=text name=goals_erbij".$top_id." value=".$goals_erbij."></td></tr>";
}
?>
</table>
<input type="submit" name="post" value="verzenden">
</form>
<?
}
elseif($verstuurd==1) {
$sql = mysql_query("SELECT top_id FROM topscorer ORDER BY top_id");
while ($row = mysql_fetch_assoc($sql))
{
$top_id = $row['top_id'];
$goals = $_POST['goals_erbij'.$top_id]+$_POST['goals'.$top_id];
mysql_query("UPDATE topscorer SET goals = ".$goals." WHERE top_id = '".$top_id."'") or die (mysql_error());
}
}
else {
echo "test";
}
?>

Maar ik weet zeker dat deze twee stukjes sneller kunnen, maar hoe?
$goals = $_POST['goals_erbij'.$top_id]+$_POST['goals'.$top_id];
//////////////////////////
<td align=right><input maxlenght=2 size=2 type=hidden alt=".$goals." name=goals".$top_id." value=".$goals.">$goals</td><td><input maxlenght=2 size=2 type=text name=goals_erbij".$top_id." value=".$goals_erbij."></td>

Weet iemand een betere manier

[ignore]
[/ignore] zouden je post een stuk duidelijker maken.

Dat $verstuurd; is redelijk zinloos, aangezien je toch ook gewoon de code tussen die if lussen kan zetten?

Ik neem aan dat niet alleen de gene met het hoogste ID meer doelpunten kan krijgen(ik kan me vergissen, maar het lijkt erop dat jouw script dat doet). Dus gewoon het ID nemen wat bij de persoon(In dit geval Michel) hoort.

Verder kan je bij je update query gewoon doen:

mysql_query("UPDATE topscorer SET goals =goals+".$_POST['goals']." WHERE top_id = '".$userid."'") or die (mysql_error());
Ik neem aan dat niet alleen de gene met het hoogste ID meer doelpunten kan krijgen

Dit stukje snap ik niet helemaal kan je dat uitleggen

mysql_query("UPDATE topscorer SET goals =goals+".$_POST['goals']." WHERE top_id = '".$userid."'") or die (mysql_error()); 


Dit stukje werkt nu goed, bedankt daarvoor
Arnold schreef op 17.08.2008 21:43
Ik neem aan dat niet alleen de gene met het hoogste ID meer doelpunten kan krijgen

Dit stukje snap ik niet helemaal kan je dat uitleggen


Ik las het fout, maar alsnog zou je met:

$sql = mysql_query("SELECT top_id FROM topscorer ORDER BY top_id");


Het laagste ID krijgen uit de topscoorderslijst, tenzei ik je database verkeerd snap.

En ik krijg hierdoor een indruk dat jij een tabel hebt met topscoorders? Kan je dat niet gewoon berekenen vanaf het aantal doelpunten van een persoon, en dan ORDER DESC?
Op dit moment maakt het niet uit of top_id 1 of top_id 2 bovenaan staat
in beide gevallen wordt hij gewoon bij de andere opgeteld.

en ik vind het makkelijker om het aantal doelpunten toe te voegen, dan steeds zelf te gaan rekenen door 8 in 9 te veranderen (of bedoelde je dat niet

Reageren