Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]petla while i przeslanie wwynikow do drugiej tabeli wraz z dopisanymi wartosciami
malamut_kalahan
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 19.10.2012

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


Witam,
mam taki problem podczas tworzenia formularza do obsługi bazy danych.
Sprawa wygląda tak: sa dwie tabele w bazie

jedna slownikowa(modyfikowana z poziomu formularza ze strony www) struktura:
id | nazwa
1. warszawa
2. poznan
3. gdansk
4. wroclaw
z tej tabeli pętlą „while” pobieram nazwy do formularza i w tym formularzu dopisuje do pobranych nazw wartości np. 1,3,4,
chciałbym z poziomu formularza nazwy wraz z wartościami dopisywać do drugiej tabeli, ale poki co dopisuje mi tylko nazwe i wartość z ostatniego „przebiegu” pętli while , jak to "przeskoczyć"? dopiero zaczynam zabawe z php i moze "while" to nie tedy droga ....
Go to the top of the page
+Quote Post
rocktech.pl
post
Post #2





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

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


Witam.

Kod będzie przydatny.


--------------------
Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. --Brian Moore

I never go looking for a sucker. I look for a Champion and make a sucker of of him. --Amarillo Slim


Home-made : js-gui-classes | Accordion | Tabs | Carousel / php-sms-classes | Obsługa bramki SMS MultiInfo | Obsługa bramki SMS Mobiltek
Go to the top of the page
+Quote Post
malamut_kalahan
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 19.10.2012

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


<?


$miasto=mysql_query("select * from miasto ");
echo"<br><br><form action='bezdod.php' method='post'>
<table align='left'border='3'><tr><td><b>miasto</td><td><b>ilosc</td></tr>";
while($x=mysql_fetch_assoc($miasto)){
$td=$x['miasto'];
echo"<tr><td>$td</td><td><input type='text' name='ilosc'></td></tr>";
}

echo"<tr><td colspan='2' align='center'><input type='submit' value='dodaj' name='dodaj'></td></tr></table></form>";


?>
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Cytat(malamut_kalahan @ 19.10.2012, 11:04:10 ) *
<?


$miasto=mysql_query("select * from miasto ");
echo"<br><br><form action='bezdod.php' method='post'>
<table align='left'border='3'><tr><td><b>miasto</td><td><b>ilosc</td></tr>";
while($x=mysql_fetch_assoc($miasto)){
$td=$x['miasto'];
echo"<tr><td>$td</td><td><input type='text' name='ilosc'></td></tr>";
}

echo"<tr><td colspan='2' align='center'><input type='submit' value='dodaj' name='dodaj'></td></tr></table></form>";


?>


Nie zbyt precyzyjnie objaśniłeś swój problem, ale domyślam się o co chodzi.

  1. $miasto=mysql_query("select * from miasto ");
  2.  
  3. echo"<br><br><form action='bezdod.php' method='post'><table align='left'border='3'><tr><td><b>miasto</td><td><b>ilosc</td></tr>";
  4.  
  5. while($x=mysql_fetch_assoc($miasto)){
  6.  
  7. $td=$x['miasto'];
  8. echo"<tr><td>$td</td><td><input type='text' name='ilosc[{$x['id']}]'></td></tr>"; // tutaj jest różnica z Twoim kodem.
  9.  
  10. }
  11.  
  12. echo"<tr><td colspan='2' align='center'><input type='submit' value='dodaj' name='dodaj'></td></tr></table></form>";


Rzecz w tym, że przesyłając swój formularz miałeś tylko jedną zmienną $_POST['ilosc'] prawda? Zmienna była kolejno nadpisywana aż do wartości w ostatnim obrocie pętli. Zastosuj tutaj nazwę tablicową, tak jak zaprezentowałem to w przykładzie powyżej. Odczytujesz ją poprzez $_POST['ilosc']['id_miasta']. A zresztą dopisz linijkę:

  1. print_r($_POST);


w pliku wynikowym (bezdod.php?) i wszystko powinno być jasne.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
malamut_kalahan
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 19.10.2012

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


ok fajnie zdaje sie ze zalapaem teraz tylko pytanie jak w pliku wynikowym zaleznie od ilosci pozycji pobranych z tabeli nazw wykonac polecenie insert do nowej tabeli
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #6





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Choćby tak:

  1. foreach ($_POST['ilosc'] as $key => $value) {
  2. $query = "INSERT INTO tabela (id, ilosc) VALUES ('$key', '$value')";
  3. // wykonanie zapytania (już nie piszę, bo nie wiem czy używasz PDO, mysqli czy jeszcze czegoś innego).
  4. }


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
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 Aktualny czas: 21.08.2025 - 23:19