Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/mysql]Dodawanie określonej liczb rekordów, Łączenie zmiennych w zapytniu mysql_query.
kurdak
post 16.11.2007, 15:25:58
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
franki01
post 16.11.2007, 22:59:09
Post #2





Grupa: Zarejestrowani
Postów: 508
Pomógł: 75
Dołączył: 2.11.2005
Skąd: Bydgoszcz

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


linijka 29.:

  1. <?php
  2. mysql_query("INSERT INTO produkty (id,nazwa,kod,cena) VALUES('', '$nazwa"."$i', '$kod'.$i'', '$cena'.$i'')");
  3. ?>
Go to the top of the page
+Quote Post
kurdak
post 17.11.2007, 02:15:22
Post #3





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

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


niestety próbowałem zmienić to wszystko i nadal nie działa sad.gif Proszę o pomoc.
Zmieniałem tak jak jst zmieniona zmienna nazwa.
Go to the top of the page
+Quote Post
Darti
post 17.11.2007, 04:18:07
Post #4





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


  1. <?php
  2. $nazwa .= $i;
  3. $kod .= $i;
  4. $cena .= $i;
  5. mysql_query("INSERT INTO produkty (id,nazwa,kod,cena) VALUES('', '$nazwa', '$kod', '$cena')");
  6. ?>


albo

  1. <?php
  2. mysql_query("INSERT INTO produkty (id,nazwa,kod,cena) VALUES('', '".$nazwa . $i."', '".$kod . $i."', '".$cena . $i ."')");
  3. ?>


albo

  1. <?php
  2. mysql_query(sprintf("INSERT INTO produkty (id,nazwa,kod,cena) VALUES('', '%s', '%s', '%s')",$nazwa.$i,$kod.$i,$cena.$i));
  3. ?>


Ten post edytował Darti 17.11.2007, 04:25:44


--------------------
The answer is out there, Neo. It's looking for you. And it will find you, if you want it to.
SERVER_SOFTWARE : Apache/2.2.4 (Win32) PHP/5.2.1
MySQL Client API version : 5.0.27
Go to the top of the page
+Quote Post
kurdak
post 17.11.2007, 13:12:53
Post #5





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

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


Niestety wszystkie podane możliwości niedziałają. Sktypt nie wywala żadnych błędów więc może coś jest nie tak ale nie mam pojęcia co sad.gif
Go to the top of the page
+Quote Post
BaN
post 17.11.2007, 13:22:02
Post #6





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

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


Powinieneś zastosować: $_POST['nazwa' . $i], $_POST['kod' . $i], $_POST['cena' . $i]
Go to the top of the page
+Quote Post
kurdak
post 17.11.2007, 13:47:07
Post #7





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

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


Teraz kod wygląda tak:
  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(($nazwa0<>"")&&($kod0<>"")&&($cena0<>"")){
  27. include "bd.php";
  28. for($i = 0; $i < $ile; $i++){ 
  29. $nazwa .= $i;
  30. $kod .= $i;
  31. $cena .= $i;
  32. mysql_query("INSERT INTO produkty (id,nazwa,kod,cena) VALUES('', '$nazwa', '$kod', '$cena')");
  33. }
  34. echo"Udało się";
  35. echo" I = $nazwa";
  36. }
  37. ?>
  38. </body>
  39. </html>


Niestety dalej nie działa sad.gif
Go to the top of the page
+Quote Post
BaN
post 17.11.2007, 15:23:32
Post #8





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
nospor
post 17.11.2007, 15:25:41
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@kurdak Ten kod to porażka. Mieszasz odwolania do zmiennych forma. Raz piszesz $ilosc, raz $_POST['ilosc']. Zdecyduj sie i najlepiej zdecyduj sie na $_POST['ilosc'].
Wogole nie sluchasz co do ciebie piszą. Napisano ci ze masz walic $_POST['nazwa'.$i] a ty dalej swoje....
Najlepsze jest to, ze na innym forum piszesz:
Cytat
na innym forum dali mi takie rozwiązanie niestety nie działa pokażcie że jesteście lepsi ;
Co to? Wojna forow? Ludzi podjudzasz jednych na drugich? Zajmij sie chlopie czytaniem to co ci piszą, a nie takie zagrywki robisz.

No, wylalem co lezalo mi na sercu. Mam nadzieje ze weźmiesz to do swojego smile.gif

  1. <html>
  2. <head>
  3. <title>Nazwa strony</title>
  4. </head>
  5. <body>
  6. <form action="q3.php" method="post">
  7. <input type="text" name="ilosc">
  8. <input type="submit" name="count" value="Dalej">
  9. </form>
  10. <?php 
  11. if (isset($_POST['count'])){
  12. $ile = (int)$_POST['ilosc']; 
  13. if($ile == 0) $ile = 1; 
  14. echo '<form action="q3.php" method="post"><table border="1">
  15. <input type="hidden" name="ilosc" value="'.$ile.'" />
  16. <tr><td>Nazwa produktu: </td><td>Kod produktu: </td><td>Cena produktu: </td></tr>';
  17. for($i = 0; $i < $ile; $i++){ 
  18. echo '<tr>'; 
  19. echo '<td> <input type="text" name="nazwa'.$i.'"></td>';
  20. echo '<td> <input type="text" name="kod'.$i.'"></td>';
  21. echo '<td> <input type="text" name="cena'.$i.'"></td>';
  22. echo '</tr>';
  23. }
  24. echo '</table><p><input type="submit" name="add" value="Dodaj produkt"></p></form>';
  25. }
  26. if(isset($_POST['add'])){
  27. $ile = (int)$_POST['ilosc']; 
  28. for($i = 0; $i < $ile; $i++){ 
  29. $nazwa = $_POST['nazwa'.$i];
  30. $kod = $_POST['kod'.$i];
  31. $cena = $_POST['cena'.$i];
  32. if (empty($nazwa) || empty($kod) || empty($cena))
  33. echo '<br />nie wpisales wszystkiego!!!!';
  34. else
  35. echo "<br />Tu se zrob zapytanie dla $nazwa, $kod, $cena";
  36. }
  37. echo "<br /><br /><br />Nie pisze ze sie udalo, jesli nie sprawdziles czy zapytanie sie wykonalo!!!!!
    !"
    ;
  38. }
  39. ?>
  40. </body>
  41. </html>

Tak na szybko pisane
Dorob do tego swoje zapytanie, przejrzyj kod i przemysl co robiles źle do tej pory.

ps: q3.php zmien sobie na swoj plik


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kurdak
post 18.11.2007, 01:09:05
Post #10





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

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


Wszystkim bardzo bardzo dziękuję.
Dzięki wam poznałem moje braki i dzięki wam nauczyłem się czegoś nowego.
Jesteście wielcy exclamation.gif!!!
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 18.06.2025 - 12:58