Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/mysql]Dodawanie określonej liczb rekordów, Łączenie zmiennych w zapytniu mysql_query.
kurdak
post
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 1.05.2007
Skąd: Gryfino

Ostrzeżenie: (0%)
-----


Witam.
Mam problem z dodaniem rekordów do bazy. Chodzi mi o te drugą pętlę for a dokładnię o to co jest w VALUES (29 wiersz).
Jak zrobić aby kolejne nazwy zmiennych czyli nazwa+$i będzie nazwa0 itd.
Bardzo proszę o pomoc.
  1. <html> 
  2. <head> 
  3. <title>Nazwa strony</title> 
  4. </head> 
  5. <body> 
  6. <form action="produkty_dodaj1.php" method="POST"> 
  7. <input type="text" name="ilosc"> 
  8. <input type="submit" value="Dalej"> 
  9. <?php
  10. if ($ilosc != '') 
  11. { 
  12. $ile = (int)$_POST['ilosc'];
  13. if($ile == 0) $ile = 1;
  14. echo '<form action="produkty_dodaj.php" method="POST"><table border="1"><tr><td>Nazwa produktu: </td><td>Kod produktu: </td><td>Cena produktu: </td></tr>'; 
  15. for($i = 0; $i < $ile; $i++){
  16. echo '<tr>';
  17. echo "<td> <input type=\"text\" name=\"nazwa".$i."\"></td>"; 
  18. echo "<td> <input type=\"text\" name=\"kod".$i."\"></td>"; 
  19. echo "<td> <input type=\"text\" name=\"cena".$i."\"></td>"; 
  20. echo '</tr>'; 
  21. } 
  22. echo '</table><p><input type="submit" value="Dodaj produkt"></p></form>'; 
  23. } 
  24. ?> 
  25. <? 
  26. if(($nazwa<>"")&&($kod<>"")&&($cena<>"")){ 
  27. include "bd.php"; 
  28. for($i = 0; $i < $ile; $i++){
  29. mysql_query("INSERT INTO produkty (id,nazwa,kod,cena) VALUES('', '$nazwa'.$i'', '$kod'.$i'', '$cena'.$i'')"); 
  30. } 
  31. mysql_close($sql); 
  32. echo"Udało się"; 
  33. } 
  34. ?> 
  35. <pre><?php print_r($_POST); ?></pre> 
  36. </body> 
  37. </html>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
BaN
post
Post #2





Grupa: Zarejestrowani
Postów: 158
Pomógł: 43
Dołączył: 9.11.2007

Ostrzeżenie: (0%)
-----


Przecież napisałem żebyś wykorzystał tablicę $_POST
Kod
<html>
   <head>
   <title>Nazwa strony</title>
   </head>
   <body>
   <?php
   if (isset($_POST['ilosc'])) {
     $ile = intval($_POST['ilosc']);
     if($ile <= 0) $ile = 1;
     echo '<form action="' . $_SERVER['PHP_SELF'] . '" method="POST"><input type="hidden" name="ile" value="' . $ile .'">';
     echo '<table border="1"><tr><td>Nazwa produktu: </td><td>Kod produktu: </td><td>Cena produktu: </td></tr>';
     for($i = 0; $i < $ile; ++$i) {
       echo <<<WIERSZ
       <tr>
       <td><input type="text" name="nazwa$i"></td>
       <td><input type="text" name="kod$i"></td>
       <td><input type="text" name="cena$i"></td>
       </tr>
   WIERSZ;
     }
     echo '</table><p><input type="submit" value="Dodaj produkt"></p></form>';
   }
   elseif (isset($_POST['ile'])) {
     include "bd.php";
     $ile = intval($_POST['ile']);
     for($i = 0; $i < $ile; ++$i) {
       $nazwa = $_POST['nazwa' . $i];
       $kod = $_POST['kod' . $i];
       $cena = $_POST['cena' . $i];
       if (($nazwa !='') && ($kod != '') && ($cena != '')) {
         mysql_query("INSERT INTO produkty(nazwa,kod,cena) VALUES('$nazwa', '$kod', '$cena')");
       }
     }
     mysql_close($sql);
     echo "Udało się?";
   }
   else {
     echo <<<FORM
   <form action="{$_SERVER['PHP_SELF']}" method="POST">
   <input type="text" name="ilosc">
   <input type="submit" value="Dalej">
   </form>
   FORM;
   }
   ?>
   </body>
   </html>

Nie wiem jakiego typu są pola w bazie danych, ale powinieneś przed wykonaniem zapytania rzutować na odpowiedni typ i/lub wykorzystać mysql_real_escape_string
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 29.12.2025 - 14:19