Avatar billede gedekid Nybegynder
10. maj 2005 - 10:28 Der er 5 kommentarer og
1 løsning

flere arrays ind i MySQL

Hej,

jeg har et stort problem jeg håber I kan hjælpe med.
Jeg har en form til indsættelse af målscorer.
Altså som eksempel:

Der er 4 målscorer i kampen.
Så indtaster man målscorer 1, scoringstidspunktet og hans hold,
samme med målscorer 2, 3 og 4.

Så kommer mit spørgsmål så.

Hvordan kan jeg få delt de arrays rigtigt op så det bliver smidt perfekt ind i databasen der hedder goals (indeholder: matchID, navn, homeaway, goaltime) ?

Som det virker nu så får den kun ét array med ind altså, målscorer 1 og indsætter ham 4 gange.

---------------kode putscores.php--------------------


<?php
require_once("../includes/functions.php");

$matchID = $_GET["matchID"];
$navn = $_POST["navn"];
$homeaway = $_POST["homeaway"];
$goaltime = $_POST["goaltime"];

mysql_query("INSERT INTO goals (matchID, navn, homeaway, goaltime)
VALUES ('$matchID', '$name', '$ha', '$time')")or die(mysql_error());


mysql_close();
?>

------------------------------------------------------------

-----------------------kode writescores.php-----------------
<?php
require_once("../includes/top.php");
require_once("../includes/functions.php");

$matchID = $_GET['matchID'];
$totgoals = $_GET['totalgoals'];
?>

<form action="putscores.php?matchID=<?php print $matchID; ?>" method="post">
Målscorer:<br />
<?php
$goals = $totgoals;

for ($i=1; $i <= $goals; $i++)
    {
      print "<input type=\"text\" name=\"navn[]\"/>";
      print "<select name=\"homeaway[]\">
              <option value=\"1\">Hjemme</option>
              <option value=\"2\">Ude</option>
              </select><br />";       
      print "Tid: <input type=\"text\" name=\"goaltime[]\"><br />";
    }
?>
<input type="submit" name="submit" value="Skriv data">
</form>

<?php require_once("../includes/bund.php"); ?>
-----------------------------------------------------

Håber I kan hjælpe :)
Avatar billede gedekid Nybegynder
10. maj 2005 - 10:29 #1
Kan lige tilføje at jeg har prøvet med foreach, men kan ikke få den til at virke rigtigt. Mener at jeg skal ha' lavet ét stort array som så deles op, men er ikke sikker...
Avatar billede sukos Juniormester
10. maj 2005 - 11:20 #2
Du kan gøre så'n:

<?php
$goals = 3;
$matchID = 4;
?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="hidden" name="goal_form" value="<?php echo $goals; ?>">
<input type="hidden" name="matchID" value="<?php echo $matchID; ?>">
Målscorer:<br />
<?php
for ($i= 1; $i <= $goals; $i++)
    {
      print "<input type=\"text\" name=\"navn_". $i ."\"/>";
      print "Hjemme <input type=\"radio\" name=\"homeaway_". $i ."\" value=\"1\" checked>\n";
      print "Ude <input type=\"radio\" name=\"homeaway_". $i ."\" value=\"2\"><br />\n";     
      print "Tid: <input type=\"text\" name=\"goaltime_". $i ."\"><br />\n";
    }
?>
<input type="submit" value="Skriv data">
</form>

<?php
if(isset($_POST["goal_form"])) {

for($a = 1; $a <= $_POST["goal_form"]; $a++) {

echo "INSERT INTO `goals` (`matchID`, `navn`, `homeaway`, `goaltime`) VALUES ('". $_POST["matchID"] ."', '". $_POST["navn_". $a] ."', '". $_POST["homeaway_". $a] ."', '". $_POST["goaltime_". $a] ."')<br />\n";

}

}

?>
Avatar billede barklund Nybegynder
10. maj 2005 - 11:38 #3
Det er da fint nok med navn[] og homeaway[] som det var før. Man kunne endda gøre det endnu pænere som:

writescores.php

<?php
require_once("../includes/top.php");
require_once("../includes/functions.php");
$matchID = $_GET['matchID'];
$totgoals = $_GET['totalgoals'];
?>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<input type="hidden" name="matchID" value="<?php echo $matchID; ?>">
Målscorer:<br />
<?php
for ($i= 1; $i <= $goals; $i++)
    {
      print "<input type=\"text\" name=\"navn[". $i ."]\"/>";
      print "Hjemme <input type=\"radio\" name=\"homeaway[". $i ."]\" value=\"1\" checked>\n";
      print "Ude <input type=\"radio\" name=\"homeaway[". $i ."]\" value=\"2\"><br />\n";   
      print "Tid: <input type=\"text\" name=\"goaltime[". $i ."]\"><br />\n";
    }
?>
<input type="submit" value="Skriv data">
</form>

Og i den anden putscores.php:

<?php
if(count($_POST)) {
  for($a = 1; $a <= count($_POST["navn"]); $a++) {
    echo "INSERT INTO `goals` (`matchID`, `navn`, `homeaway`, `goaltime`) VALUES ('". $_POST["matchID"] ."', '". $_POST["navn"][$a] ."', '". $_POST["homeaway"][$a] ."', '". $_POST["goaltime"][$a] ."')<br />\n";
  }
}
?>

Synes jeg lige umiddelbart :)

--
Morten Barklund
Avatar billede sukos Juniormester
10. maj 2005 - 11:45 #4
ja, der er jo ikke den store forskel, men det er vist ikke valid html at bruge [] til name?
Er dog ikke helt sikker! :O)
Avatar billede gedekid Nybegynder
11. maj 2005 - 15:22 #5
Awesome work! :)
Hvis I begge lige smider et svar så får I point.

Tak for hjælpen.
Avatar billede sukos Juniormester
17. maj 2005 - 12:21 #6
johh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester