Avatar billede RippieUK Nybegynder
16. april 2010 - 18:18 Der er 6 kommentarer

Hjælp til at indsætte forskellige antal af rows i mysql db

Hej alle sammen.

Kan nogen hjælpe mig med at finde ud af hvordan jeg bedst laver et script der vil indsætte mere end 1 row til en mysql database ? antallet er ikke fast, så nogen gange vil det være 5 forskellige rows og andre gange måske kun en row og måske næste gang vil det være 10.

Siden vil hente data fra mysql så jeg kan redigere den data, og så ville jeg have 1 submit knap der vil tage mig til en anden side men så ved jeg ikke hvordan jeg fortæller action.php til at updatere de rows da der kan være forskellige antal rows den skal opdatere eller indsætte.

Rippie
Avatar billede Slettet bruger
16. april 2010 - 18:27 #1
Når du henter data fra din database og vil bruge det i en html form så gem navnene på elementerne i formen som et array - gøres således: <input type="text" name="navn[]">
På din action.php side kan du nu loope igennem array $_POST["navn"]!
Et eksempel på at loope igennem et array med foreach:
<?php
// dette er action.php
foreach($_POST["navn"] as $nr => $value) {
  echo "Navn " . $nr++ . " er " . $value . "<br>\n";
}
?>
Avatar billede RippieUK Nybegynder
16. april 2010 - 22:24 #2
Jeg har faktisk 3 input felter der skal tages højde for. vil jeg gøre noget anderledes da?
Behøver heller ikke echo $nr til noget... men går ud fra det bare er for demonstration ?
Avatar billede Slettet bruger
17. april 2010 - 00:25 #3
Det var bare en demonstration ja.
For at lave et eksempel lidt tættere på det du behøver så vil jeg lave 3 input tekstfelter: navn, e-mail og tlf.

HTML delen:
<form action="action.php" method="post">
<b>Person #1</b><br>
Navn: <input type="text" name="navn[]"><br>
E-Mail: <input type="text" name="mail[]"><br>
Telefon nr.: <input type="text" name="tlf[]"><br><br>

<b>Person #2</b><br>
Navn: <input type="text" name="navn[]"><br>
E-Mail: <input type="text" name="mail[]"><br>
Telefon nr.: <input type="text" name="tlf[]"><br><br>

<b>Person #3</b><br>
Navn: <input type="text" name="navn[]"><br>
E-Mail: <input type="text" name="mail[]"><br>
Telefon nr.: <input type="text" name="tlf[]"><br><br>

<input type="submit" value="Tilføj personer">
</form>

PHP delen (action.php):
<?php
// Looper igennem vores $_POST arrays
// Det er lige meget hvilken af de 3 arrays vi vælger da de alle går igen for hver person
foreach($_POST["navn"] as $index => $navn) {
  // Navn er gemt i $navn, vi vil nu lave variabler der indeholder e-mail og tlf. nr.
  $mail = $_POST["mail"][$index];
  $tlf = $_POST["tlf"][$index];

  // Nu har vi navn, e-mail og tlf. i variabler
  // så nu tilføjer vi dem til en MySQL table
  mysql_query("INSERT INTO `personer`(`navn`, `email`, `telefon`) VALUES('$navn', '$mail', '$tlf');
}
?>


Koden er ikke testet, men burde virke, og fremgangsmåden fejler intet!
Håber det kan hjælpe dig med at få ordnet dit problem.
Avatar billede RippieUK Nybegynder
17. april 2010 - 10:50 #4
Tusinde tusinde tak.... vil teste det ud når jeg kommer tilbage til arbejdet... Hvor meget ved du om JAVASCRIPT eller AJAX ?? har et andet spørgsmål åbent her:
http://www.eksperten.dk/spm/907243

Kan ikke rigtig finde ud af det... lol
Avatar billede Slettet bruger
17. april 2010 - 14:07 #5
Lad os starte med at få lukket det her?
Så skal jeg nok få kigget på dit andet ;-)
Avatar billede RippieUK Nybegynder
17. oktober 2010 - 19:51 #6
Hej, vil gerne lige ha lukket det her så hvis du gider smide et svar. please gør det :D
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