webForumDet fria alternativet

Uppdatera flera poster

PHP

6 svar · 435 visningar · startad av Andiee

Medlem sedan mars 2000167 inlägg
Frågan#1

Hej,

Jag behöver veta hur man ska göra för att uppdatera flera olika poster i databas skickat från ett fomulär?

Saken är den, jag ska uppdatera en poängliga, och på en sida radas alla spelare upp samt hur många mål och assist de gjort i olika fält. Då ska man enkelt kunna fylla i de spelare som efter varje match gjort mål/assist, skicka iväg det och så uppdateras var spelare för sig.

Låter det otydligt? Jag vill alltså loopa igenom spelare för spelare och uppdatera mål/assist. Hur ska jag göra det smidigt? Hur ska jag lösa det med formulären, och deras namn?
Det vore väldigt bra/skönt/kul/glädjande om ni hade lite ideér/exempel.

The old fashion way var ju att uppdatera det post för post, men herregud, vi lever ju på 2000-talet!

Jag tacksam för all ev. hjälp.

Medlem sedan apr. 2002830 inlägg
#2

Re: Uppdatera flera poster

Andiee skrev:

The old fashion way var ju att uppdatera det post för post, men herregud, vi lever ju på 2000-talet!

Jo, du har rätt, men det är nog den vägen du får gå!

Jag vet inte något annat sätt med en mySQL databas iaf!

// Nippe

Medlem sedan juni 20031 837 inlägg
#3

du får nog ge lite mer information om hur ditt formulär ser ut samt hur tabellerna ser ut för att man ska kunna hjälpa dig.

Är det ett fixt antal fält i formuläret, vad heter de olika input-fälten?

Medlem sedan mars 2000167 inlägg
#4

Antalet fält i formuläret beror ju på antalet spelare i databasen. De fält som finns i databasen är namn, mål och assist. Och inputfälten måste väl heta olika saker, tex formPlayer1Namn - formPlayer1Mal - formPlayer1Ass, formPlayer2Namn o.s.v. Eller? Jag vet inte, detta är bara i planeringsfasen...

Medlem sedan juni 20031 837 inlägg
#5

då måste du börja med att bygga upp formuläret.

  1. Hämta all information från database (namn, mål, assist)

  2. loopa över posterna för att bygga input-fälten i formuläret

$spelar_nummer = 0;
?>
<form method="post">
<table>
<tr>
  <td>Namn</td>
  <td>Mål</td>
  <td>Assist</td>
</tr>
<?
while($fler_poster)
{
?>
<tr>
  <td><?=$spelar_nummer++?></td>
  <td><input type="text" name="player_<?=$spelar_nummer?>_name"> value="<?=spelar_namn?>">

  <td><input type="text" name="player_<?=$spelar_nummer?>_goal"> value="<?=spelar_mal?>">

  <td><input type="text" name="player_<?=$spelar_nummer?>_assist"> value="<?=spelar_assist?>">
</tr>
<?
}
<?
<input type="hidden" name="antal_spelare" value="<?=$spelar_nummer?">
?>

Det bör bygga upp formuläret.

  1. Ta emot alla värden i PHP.
$no_players = $_POST["antal_spelare"];
for($i=1;$i=<$no_players;$i++)
{
  $player_name = $_POST["player_".$i."_name"];
  $player_goal = $_POST["player_".$i."_goal"];
  $player_assist = $_POST["player_".$i."_assist"];
  // uppdatera databasen med dessa värden
}

Så bör du kunan göra. OBS! jag har inte testat koden så det kan förekomma fel. Skrev det här i forumet. Man missar alltid något men du bör ha fått grunden för system där.

Hoppas det hjälpte dig.

Medlem sedan apr. 20012 427 inlägg
#6

Alternativet till att trixa med räkning av antal spelare är att loopa igenom alla $_POST-variabler och fånga upp dem som börjar med exempelvis "player_".

Medlem sedan mars 2000167 inlägg
#7

Ja, ursäkta att jag inte varit snabbare att svara men har inte hunnit med att jobba med det. Men nu är det fixat, och det fungerade utmärkt.
Tack så mycket för hjälpen!

255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)