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 :)
Annonceindlæg fra Kingston Technology
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...
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"; } } ?>
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
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)
Awesome work! :) Hvis I begge lige smider et svar så får I point. Tak for hjælpen.
Vi tilbyder markedets bedste kurser inden for webudvikling