webForumDet fria alternativet
Logga in / Bli medlem

Hur sparar man multipla forms?

PHP

3 svar · 484 visningar · startad av Skogiz

Medlem sedan feb. 200395 inlägg
Frågan#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! :)

Medlem 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

Medlem 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...

Medlem 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.

267 ms totalt · 4 externa anrop · v20260731065814-full.05830320
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
131 ms — ändringar (db)