webForumDet fria alternativet

Hur sparar man multipla forms?

3 svar · 484 visningar · startad av Skogiz

SkogizMedlem sedan feb. 200395 inlägg
#1

Håller på att bygga upp en spelardatabas där man ska kunna spara händelser från varje match.

Alla spelare ligger i egen tabell med unikt id
Alla typer av händelser ligger i egen tabell med unika id
Alla motståndarlag finns i en egen tabell med unika id
Alla säsonger finns i egen tabell med unika id
Alla ligor finns i egen tabell med unika id

När jag ska fylla i det har jag ett formulär där man sökt fram de olika unika id från de olika tabellerna.

Det blir då likt detta
http://brightphoto.se/phpfraga/test.html

Men hur sjutton sparar man detta?

Varje rad med spelarnamn, deltagit, mål, pass, utv och så vidare tillsammans med säsongsinfo, ligainfon och motståndarinfon skall sparas som en egen rad i databasen.

Eller finns det kanske smartare sätt att lägga upp det hela? Tanken är att man ska kunna söka upp vilken spelare som gjort mest mål mot ett visst lag, varit mest utvisad mot ett visst lag e.t.c e.t.c

All hjälp tas mycket tacksamt emot! :)

SkogizMedlem sedan feb. 200395 inlägg
#2

Ja det var inte så svårt trots allt. Kommit en bit på vägen genom att göra arrayer av alla inputs.

Innan jag nu försöker få in det i databasen försöker jag bara printa ut all info så att jag ser att infon ser rätt ut men man verkar inte kunna använda foreach på det sätt jag önskar

 foreach($_POST['player'] as $player, $_POST['goal'] as $goal )
             {
            echo $player;
            echo " ";
            echo $goal;
            echo "<br>";
            }

Någon som kan hjälpa mig med den kodsnutten?

Tack på förhand

SkogizMedlem sedan feb. 200395 inlägg
#3

Kanske ska förtydliga vad jag egentligen vill för att lättre få hjälp. Svårt när man är oklar.

Jag vill kunna få in multiple records i mysql via ett enda formulär.
När man ska ha in data i mysql (multiple records) ska ju formatet vara enligt

INSERT INTO example
  (example_id, name, value, other_value)
VALUES
  (100, 'Name 1', 'Value 1', 'Other 1'),
  (101, 'Name 2', 'Value 2', 'Other 2'),
  (102, 'Name 3', 'Value 3', 'Other 3'),
  (103, 'Name 4', 'Value 4', 'Other 4');

När jag kör

foreach($_POST['player'] as $player

så får jag ju en lista på alla spelare (motsvaras av 100, 101, 102, 103 i listan i koden ovan) men för att kunna få in den infon jag får från formuläret måste ju datat komma i den ordningen som koden visar ovan. Hur löser man det enklast.

Får man göra en ny array av array-datat?

STORT tack på förhand till den som ger en hjälpande hand här.
Om det är oklart kan jag förklara vidare om så behövs...

SoMeOnEMedlem sedan nov. 200254 inlägg
#4

Mitt tips är att döpa namnen på inputsen i formuläret till goal[100] typ så här:
<input name="goal[100]">, där 100 är id till raden. Då kan du lätt sedan loopa igenom alla raderna med
foreach($_POST['goal'] AS $ID => $goals) {
}

Sen för själva sql med multiple rows kör något sånt här:

<?php
$sql = "INSERT INTO example
  (example_id, name, value, other_value)
VALUES";
foreach($_POST['goal'] AS $ID => $goals) {
$sql .= "(".$ID",'".$goals."', "'.$_POST['powerplay'][$ID].'", "'.$_POST['boxplay'][$ID].'"),"
}
$mysql_query($sql);
?>

Har ingen aning om det hjälper, inte lätt att förstå vad du fråga efter utan att se någon databasstruktur eller formulär som fungerar. Koden ovan är inte heller fullständig, sql-satsen kommer genera fel för att det kommer vara ett komma-tecken för mycket.

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)