Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wyświetlenie tabeli korzystając z parametru
Forum PHP.pl > Forum > Przedszkole
Piotrek50501
Witam
Jak wyświetlić tą tabelę w inny sposób odnosząc się do parametru i tak aby robiąc jakąś inną funkcję i odnosząc się do elementu np. i=5 wyświetlił mi się 5 wiersz tej tabeli mysql


  1. <table border="1">
  2. </thead>
  3. <tr>
  4. <th>ID</th>
  5. <th>Nazwa usługi</th>
  6. <th>Cena za metr</th>
  7. </tr>
  8. </thead>
  9. <tbody>
  10.  
  11. <?php
  12. while( $row = mysql_fetch_array($wynik))
  13. {
  14. $i=$row['ID'];
  15.  
  16. print '<tr><td>'.$row['ID'].'</td>';
  17. print '<td>'.$row['Nazwa_uslugi'].'</td>';
  18. print '<td>'.$row['Cena_za_metr'].'</td>';
  19.  
  20. print "<td><a href=\"".$_SERVER['PHP_SELF']."?kup=$i\">Kup produkt</a></td></tr>";
  21.  
  22. }


Problem polega na tym że masz kod wyświetlający koszyk i on wypisuje dane z tablicy po identyfikacji parametru i a nie wiem jak uwzględnić to w tej funkcji
Z góry dziękuje za pomoc
tomek200
Jeśli dobrze zrozumiałem to zobacz to ale nie testowałem:
  1. $i = (int)$_GET['id']; //To przekażesz w url'u
  2.  
  3. $connect = new mysqli('host_mysql','user','haslo','baza');
  4.  
  5. $zapytanie = $connect->query("SELECT ID, Nazwa_uslugi, Cena_za_metr FROM tabela WHERE ID='$i'");
  6.  
  7. while( $row = $zapytanie->fetch_assoc() )
  8. {
  9.  
  10.  
  11. print '<tr><td>'.$row['ID'].'</td>';
  12. print '<td>'.$row['Nazwa_uslugi'].'</td>';
  13. print '<td>'.$row['Cena_za_metr'].'</td>';
  14.  
  15. print "<td><a href=\"".$_SERVER['PHP_SELF']."?kup=$i\">Kup produkt</a></td></tr>";
  16.  
  17. }

PS: Radze zapoznać się z mysqli bo mysql_* nie jest już wspierane
Piotrek50501
  1. <?php
  2. if(!isset($_SESSION['koszyk']))
  3. {
  4. $_SESSION['koszyk']=array();
  5. }
  6. if (isset($_GET['kup']))
  7. {
  8. // jezeli dodajemy jakiś produkt do koszyka
  9. $_SESSION['koszyk'][] = $_GET['kup'];
  10. // przekierowanie z uwzględnieniem nie działających ciasteczek
  11. header('location: '.$_SERVER['PHP_SELF']. '?' .SID);
  12. exit();
  13. }
  14. ?>
  15.  
  16. <!DOCTYPE html>
  17. <html>
  18. <head>
  19. <meta charset="UTF-8">
  20. <title>Firma budowlana </title>
  21. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  22. </head>
  23. <body>
  24.  
  25. <b>Twoj koszyk zawiera:
  26. <?php print count($_SESSION['koszyk']); ?> produktow.</b>
  27. <p><a href="koszyk.php">Zobacz koszyk</a></p>
  28.  
  29. <?php //definicja tablic z towarami oraz cenami
  30.  
  31.  
  32. $i = (int)$_GET['ID']; //To przekażesz w url'u
  33.  
  34. $connect = new mysqli('localhost','root','haslo','stronaphp');
  35.  
  36. $zapytanie = $connect->query("SELECT ID, Nazwa_uslugi, Cena_za_metr FROM tabela WHERE ID='$i'");
  37.  
  38.  
  39. ?>
  40.  
  41. <table border="1">
  42. </thead>
  43. <tr>
  44. <th>ID</th>
  45. <th>Nazwa usługi</th>
  46. <th>Cena za metr</th>
  47. </tr>
  48. </thead>
  49. <tbody>
  50.  
  51. <?php
  52. while( $row = $zapytanie->fetch_assoc() )
  53. {
  54. print '<tr><td>' . $row['ID'] . '</td>';
  55. print '<td>' . number_format($row['Nazwa_uslugi'],2) . ' zlotych</td>';
  56. print "<td><a href=\"".$_SERVER['PHP_SELF']."?kup=$i\">Kup produkt</a></td></tr>";
  57. }
  58.  
  59.  
  60. ?>
  61. </tbody>
  62. </table>
  63. </body>
  64. </html>


Wywala mi takie błędy:
Notice: Undefined index: ID in C:\xampp\htdocs\koszyczek\towary.php on line 33

Fatal error: Call to a member function array_fetch_assoc() on boolean in C:\xampp\htdocs\koszyczek\towary.php on line 53

Już nie mam na to sił sad.gif
Piotrek50501
Po zastosowaniu tego kodu wywala mi takie błędy:

Notice: Undefined index: id in C:\xampp\htdocs\koszyczek\towary.php on line 33

Fatal error: Call to a member function fetch_assoc() on boolean in C:\xampp\htdocs\koszyczek\towary.php on line 53
tomek200
W url'u musisz dać zmienną id np. towary.php?ID=7 Jesli chcesz mieć inną zmienną to ustaw w
  1. $i = (int)$_GET['twoja_nazwa']; //To przekażesz w url'u
musi być to liczba a jeśli nie chcesz żeby była to liczba usuń
  1. (int)
z lini 33
Piotrek50501
Cytat(tomek200 @ 29.03.2015, 21:45:26 ) *
W url'u musisz dać zmienną id np. towary.php?ID=7 Jesli chcesz mieć inną zmienną to ustaw w
  1. $i = (int)$_GET['twoja_nazwa']; //To przekażesz w url'u
musi być to liczba a jeśli nie chcesz żeby była to liczba usuń
  1. (int)
z lini 33


Cały czas pokazuje mi że niezdefiniowany index sad.gif
com
zastosuj isset smile.gif
Piotrek50501
Wstawiłem tą funkcję isset i kolejny problem, brak mi słów. Nie wyświetla mi tabeli, jest puste pole i o dziwo nie wywala błędów. Część odpowiedzialna za to wygląda tak, zrobiłem ją po Waszych radach. W inny sposób kombinując wywalało mi jakieś błędy. Mógłby ktoś sprawdzić czy dobrze robię?

  1. <?php //definicja tablic z towarami oraz cenami
  2.  
  3. $i = isset($_GET['i']); //To przekażesz w url'u
  4.  
  5. $connect = new mysqli('localhost','root','haslo','stronaphp');
  6.  
  7. $zapytanie = $connect->query("SELECT ID, Nazwa_uslugi, Cena_za_metr FROM cennik_uslug WHERE ID='$i'");
  8.  
  9.  
  10. while( $row = $zapytanie->fetch_assoc() )
  11. {
  12.  
  13.  
  14. print '<tr><td>'.$row['ID'].'</td>';
  15. print '<td>'.$row['Nazwa_uslugi'].'</td>';
  16. print '<td>'.$row['Cena_za_metr'].'</td>';
  17.  
  18. print "<td><a href=\"".$_SERVER['PHP_SELF']."?kup=$i\">Kup produkt</a></td></tr>";
  19.  
  20. }
  21.  
  22. ?>
nospor
To ze miales uzyc ISSET nie znaczy ze miales jej uzyc bez zadnego namyslu i bezmyslnie skopiowac..... Jakbys zajrzal do manuala, to bys zobaczyl, ze isset zwraca TRUE albo FALSE, co ma sie nijak do ID rekordku, nie sądzisz??

$i= isset($_GET['i']) ? (int)$_GET['i'] : 0;

ps: no i wczesniej uzywales $_GET['id'] teraz $_GET['i']... zakladam, ze zmieniles w linku id na i?
Piotrek50501
Cytat(nospor @ 2.04.2015, 17:38:19 ) *
To ze miales uzyc ISSET nie znaczy ze miales jej uzyc bez zadnego namyslu i bezmyslnie skopiowac..... Jakbys zajrzal do manuala, to bys zobaczyl, ze isset zwraca TRUE albo FALSE, co ma sie nijak do ID rekordku, nie sądzisz??

$i= isset($_GET['i']) ? (int)$_GET['i'] : 0;

ps: no i wczesniej uzywales $_GET['id'] teraz $_GET['i']... zakladam, ze zmieniles w linku id na i?



Tak zmieniłem w linku id na i. Tylko dalej nie mam zamierzonego celu. Nie wyświetla mi całej tabeli. Chcę żeby wyświetlało mi całą tabelę i przypisywało zmienną $i do danego wiersza. Jest jakiś sposób żeby ją wyświetlić stosując pętlę for?
nospor
Nie wyswietla ci calej tabeli, bo dales wyraźny warunek: WHERE ID='$i'
wiec szuka ci tylko konkretnego rekordu. Chcesz miec wszystko to wywal warunek.
Piotrek50501
  1. <?php // definicja tablic z towarami oraz cenami
  2.  
  3.  
  4. $i= isset($_GET['i']) ? (int)$_GET['i'] : 0;
  5.  
  6.  
  7. $q = mysql_connect('localhost','root','haslo') or
  8. die('Padl serwer');
  9. $q = mysql_select_db('stronaphp') or die('Padla baza');
  10.  
  11.  
  12. $wynik = mysql_query("SELECT ID, Nazwa_uslugi, Cena_za_metr FROM cennik_uslug")
  13. or die('Błąd zapytania');
  14. ?>
  15.  
  16. <table border="1">
  17. </thead>
  18. <tr>
  19. <th>ID</th>
  20. <th>Nazwa usługi</th>
  21. <th>Cena za metr</th>
  22. </tr>
  23. </thead>
  24. <tbody>
  25.  
  26.  
  27.  
  28. <?php
  29.  
  30. $suma = 0;
  31. $row = mysql_fetch_array($wynik);
  32. for ($i=0;$i < count($_SESSION['koszyk']); $i++)
  33. {
  34. echo '<tr>';
  35. echo '<td>'.$row['Nazwa_uslugi'].[$_SESSION['koszyk']].'</td>';
  36. echo '<td align="right">';
  37. echo number_format ($row['Cena_za_metr'].[$_SESSION['koszyk']],2);
  38. echo ' zlotych</td></tr>';
  39. $suma = $suma + $row['Cena_za_metr'].[$_SESSION['koszyk']];
  40. }
  41. ?>


Mam jeszcze jeden i już chyba ostatni problem z tym. Wyświetlanie towarów w tablicy działa tylko jeszcze jest problem z plikiem z koszykiem. Kurcze nie miałem problemów z wyświetlaniem tego w tablicy a z bazą danych się wykładam mimo że sporo na ten temat czytałem. Jak to zdefiniować?
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.