Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Dodawanie wielu rekordów na raz
Forum PHP.pl > Forum > Przedszkole
Reiven
Witam mam problem.. nie mam pojęcia jak zrobić żeby skrypt dodał mi kilka rekordów na raz...
mam taki o to skrypt:

  1. function dodaj_roz_k()
  2. {
  3. $zaloguj_admin = $_SESSION["login2_admin"];
  4. if (!$_SESSION["haslo2_admin"])
  5. {
  6. echo "<h1><img src='img/001_58.png'> BŁĄD</h1> Nie jesteś administratorem!!!";
  7. echo ' <br><br><a href="java script:history.back();">Cofnij</a>';
  8. }else
  9. {
  10.  
  11. $idp = $_GET['id'];
  12. $page = $_GET['page'];
  13.  
  14. echo ' <br><form name="zaloguj" action="admin.php?adm=dodaj_roz_k_ile" method="post" style="margin: 0;">';
  15. echo 'Ile rozmiarów na raz?: <select name="ile">';
  16. for( $x = 1; $x <= 20; $x++ ) {
  17. echo $x." <option>$x</option> <br />";
  18.  
  19. }
  20. echo'</select>';
  21. echo '<input type="hidden" name="idp" value="'.$idp.'"/>';
  22. echo '<input type="hidden" name="page" value="'.$page.'"/>';
  23. #echo'<input type=hidden name="id_z" value="'.$id.'" size=13>';
  24. echo '<INPUT TYPE="SUBMIT" VALUE="Ok">';
  25.  
  26.  
  27. }}
  28. function dodaj_roz_k_ile()
  29. {
  30.  
  31. global $ile,$idp,$page;
  32. echo '<br><table><tr><td><form action="admin.php?adm=dodaj_roz_k_ok" method="POST"></td><td></td></tr>';
  33.  
  34. for( $x = 1; $x <= $ile; $x++ ) {
  35. echo '<td>Rozmiar ('.$x.'): </td> <td><input type="text" name="roz"/></td></tr>';
  36. }
  37. <td></td> <td><input type="hidden" name="idp" value="'.$idp.'"/></td></tr>
  38. <td></td> <td><input type="hidden" name="page" value="'.$page.'"/></td></tr>
  39. <td></td> <td><input type="hidden" name="ile" value="'.$ile.'"/></td></tr>
  40. <td><td>
  41. <input type="submit" value="Dodaj rozmiar" /></td></tr>
  42. </form></table>
  43. <br>
  44. ';
  45.  
  46. }
  47.  
  48.  
  49.  
  50. function dodaj_roz_k_ok()
  51. {
  52. $zaloguj_admin = $_SESSION["login2_admin"];
  53. if (!$_SESSION["haslo2_admin"])
  54. {
  55. echo "<h1><img src='img/001_58.png'> BŁĄD</h1> Nie jesteś administratorem!!!";
  56. echo ' <br><br><a href="java script:history.back();">Cofnij</a>';
  57. }else
  58. {
  59. global $roz,$idp,$page,$ile;
  60.  
  61. $query2 = "INSERT INTO rozmiar VALUES ('', '$roz', '$idp')";
  62. $result = mysql_query($query2);
  63. echo $query2;
  64. #header("Location: admin.php?adm=kolekcja_d_p");
  65. header("Location: admin.php?adm=kolekcja_d_p&page=$page");
  66. }
  67. }
nugae
trochę chaotyczny ten kod...
Kod
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
?
http://dev.mysql.com/doc/refman/5.1/en/insert.html
Reiven
hmm no dobra, tylko że jak np wybiorę za pomocą formularza 20pól to muszę zrobić
  1. INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9)...(18,19,20);


a co jak wybiorę np 3 pola? to mi doda też 17pustych?
Wicepsik
if, empty
Cezar708
~Reiven pamiętaj, że to Ty budujesz zapytanie, więc sam możesz stwierdzić co ma być wrzucane a co nie,

na przykład taki poniżej pseudo-kod:

  1. $sql = "INSERT INTO tbl_name (a,b,c) VALUES ";
  2. $hasValues = false;
  3. for( $wszystkiePola as $pole ) {
  4. if( isset($pole) ) {
  5. if($hasValues) {
  6. $sql .= ", ";
  7. }
  8. $sql .= "($pole, $pole, $pole)";
  9. $hasValues = true;
  10. }
  11. }
  12. if($hasValues) {
  13. exec_query($sql);
  14. }



Pozdrawiam
Reiven
przy tym:
  1. for($wszystkiePola as $pole) {

wywala bład:

Parse error: syntax error, unexpected T_AS, expecting ';' in D:\Server\httpd-users\eltom\module\administracja.php on line 3975

zaczynam się już gubić w tym co robie :/
Wicepsik
foreach
Cezar708
oj to był pseudo-kod przedstawia tylko ideę, teraz musisz do swoich potrzeb do dostosować winksmiley.jpg


pozdrawiam
thek
A od kiedy pętla FOR domyślnie przyjmuje jako parametr tablicę? Pomyliłeś to z FOREACH smile.gif
Cezar708
~thek przeczytaj co napisałem w poście 3 minuty temu... może będziesz miał odpowiedź...
Reiven
Fatal error: Call to undefined function exec_query()

wszystko byłoby ok gdyby nie to że generuje mi to takie zapytanie:

INSERT INTO kolor (id,kolor,czyj) VALUES ('', niebieski, niebieski), ('',88, 88)

zamiast:

INSERT INTO kolor (id,kolor,czyj) VALUES ('', niebieski, 88), ('', zielony, 88)

a po za tym jak dam np 9pól to daje takie zapytanie:
INSERT INTO kolor (id,kolor,czyj) VALUES ('', niebieski, niebieski), ('',88, 88)

przy czym zamieszcza tam ostatnie pole..
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.