Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP] Wyświetlenie wierszy wybranych checkboxem
Forum PHP.pl > Forum > Przedszkole
okoolarnik
Możliwe, że nie umiem nazwać fachowo tego o co mi chodzi i dlatego nie udało mi się znaleźć odpowiedzi, co spowodowało, że piszę to pytanie:

Jednym zapytaniem SELECT wyświetlam dane z tabeli z bazy danych MySQL.

np.:

  1. $zapytanie = "SELECT * FROM tabela";


potem w pętli WHILE listuję wiersze tabeli.

Jak mogę sprawić, by przy każdym wierszu wyświetlał się checkbox (tzn html'a akurat znam winksmiley.jpg) i po zaznaczeniu kilku checkboxów oraz kliknięciu w przycisk wysyłający formularz, skrypt listował mi tylko te wiersze z tabeli, które zaznaczyłem ?
Lion_87
  1.  
  2. $zapytanie = "SELECT * FROM tabela";
  3.  
  4. while....
  5.  
  6. echo '<input type="checkbox" name="lista[]" value="tu_id_tego_elementu_z_bazy" />element 1"';
  7.  
  8.  


a potem masz w tablicy id wszystkich elementów których chcesz wyświetlić.
okoolarnik
O.K., ale właśnie głównie o to chodzi - Jak wyświetlić ...
  1. SELECT * FROM tabela WHERE id =...


Tego właśnie nie mogę wymyślić winksmiley.jpg
Lion_87
ale co jak wyświetlić? z czego? z tablicy?
foreach a potem zapytanie z każdym id
okoolarnik
Mam coś takiego:

  1.  
  2. <?php
  3. if(isset($_POST['action']))
  4. {
  5. echo '<table cellspacing="0" cellpadding="0" border="1"><tbody><tr><td>id</td><td>numer</td><td>klient</td><td>produkt</td></tr>';
  6. $polaczenie=mysql_connect("localhost", "root", ""); mysql_select_db("baza", $polaczenie);
  7.  
  8. $tab = $_POST['lista'];
  9. foreach($tab as $klucz => $wartosc)
  10. $zapytanie[$klucz] = "SELECT * FROM zlecenia WHERE id='".$wartosc."'";
  11. $idzapytania[$klucz] = mysql_query($zapytanie[$klucz]) or die('<h1>Błąd nr 3.</h1><h3>Brak połączenia z bazą danych, lub tabela w bazie danych nie istnieje.');
  12. $wiersz[$klucz] = mysql_fetch_row($idzapytania[$klucz]);
  13. echo '<tr><td>'.$wiersz[$klucz][0].'</td><td>'.$wiersz[$klucz][1].'</td><td>'.$wiersz[$klucz][3].'</td><td>'.$wiersz[$klucz][18].'-'.$wiersz[$klucz][19].'-'.$wiersz[$klucz][20].'</td></tr>';
  14. echo '</table>';
  15.  
  16.  
  17.  
  18.  
  19. }
  20. else
  21. {
  22. echo '<form action="test.php" method="post"><table cellspacing="0" cellpadding="0" border="1"><tbody><tr><td> </td><td>id</td><td>numer</td><td>klient</td><td>produkt</td></tr>';
  23. $polaczenie=mysql_connect("localhost", "root", ""); mysql_select_db("baza", $polaczenie);
  24. $zapytanie="SELECT * FROM zlecenia";
  25. $idzapytania = mysql_query($zapytanie) or die('<h1>Błąd nr 3.</h1><h3>Brak połączenia z bazą danych, lub tabela w bazie danych nie istnieje.');
  26. while($wiersz = mysql_fetch_row($idzapytania))
  27. {
  28. echo '<tr><td><input type="checkbox" name="lista" value="'.$wiersz[0].'" /></td><td>'.$wiersz[0].'</td><td>'.$wiersz[1].'</td><td>'.$wiersz[3].'</td><td>'.$wiersz[18].'-'.$wiersz[19].'-'.$wiersz[20].'</td></tr>';
  29. }
  30. echo '</table><input type="hidden" value="1" name="action" /><input type="submit" value="pokaz" /></form>';
  31. }
  32.  
  33. ?>


Co robię źle, że wyświetla mi tylko ostatni wynik?
Lion_87
ale pisałem jak ma checkbox wyglądać.... zobacz jeszcze raz
okoolarnik
gdy zrobiłem name="lista[]" to mi się zaczął burzyć.
darko
nie
  1. <input type="checkbox" name="lista" value="'.$wiersz[0].'" />
a
  1. <input type="checkbox" name="lista[]" value="'.$wiersz[0].'" />
okoolarnik
Stworzyłem coś takiego
  1. <?php
  2. // polaczenie z baza danych
  3. $polaczenie=mysql_connect("localhost", "root", ""); mysql_select_db("baza", $polaczenie);
  4.  
  5. // pobranie najwyzszego id z bazy
  6. $zapytanie = mysql_query("SELECT max(id) FROM zlecenia");
  7. while($wynik = mysql_fetch_array($zapytanie)) {
  8. $max=$wynik[0];
  9. $maxx=$max+1; // zwiekszenie o 1 najwyzszego id dla nastepnej petli
  10. }
  11.  
  12.  
  13. if(isset($_POST['action']))
  14. {
  15. // petla z wykonywana az $a bedzie rowne najwyzszemu id
  16. for ($a=0; $a < $maxx; $a++)
  17. {
  18.  
  19. if(isset($_POST['box'.$a]))
  20. {
  21. //pobranie z bazy wierszy o id z zaznaczonych checkboxow
  22. $zapytanie=mysql_query("SELECT * FROM zlecenia WHERE id='".$_POST['box'.$a]."'");
  23. while($wynik = mysql_fetch_array($zapytanie))
  24. {
  25. echo ''.$wynik[0].'-'.$wynik[1].'-'.$wynik[3].'-'.$wynik[18].'-'.$wynik[19].'-'.$wynik[20].'<br />';
  26. }
  27. }
  28. else {}
  29. }
  30. }
  31.  
  32.  
  33. else
  34. {
  35. echo '<form action="test3.php" method="post">';
  36.  
  37. $zapytanie = mysql_query("SELECT * FROM zlecenia");
  38. echo '<form method="post" action="test2.php">';
  39. while($wynik = mysql_fetch_array($zapytanie)) {
  40. echo 'id:'.$wynik[0].' - nr:'.$wynik[1].' <input type="checkbox" name="box'.$wynik[0].'" value="'.$wynik[0].'" /><br />';
  41. }
  42. echo '<input type="hidden" name="action" value="1" /><input type="submit" value="pokaz" /></form>';
  43. }
  44.  
  45. ?>


Nie wierzę, ale działa tak jakbym chciał, tylko pytanko do znawców tematu, czy to jest poprawne ?
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.