Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z wyświetleniem informacji o braku rekordów w bazie MYSQL
Forum PHP.pl > Forum > Przedszkole
wallen
Witam,
Mam bazę danych Mysql w niej informacje o produktach: id, nazwa, ilość i wiele innych. W zamyśle moj skrypt ma zaciągać informację o konkretnych nr id produktów i co najważniejsze -Informować mnie jeśli danego produktu nie ma w bazie. Serwer wymusza na mnie używanie mysqli. Proszę o wskazówkę bądź o kierunek odpowiedniej scieżki którą muszę pójść by mój problem w końcu przeszedł do historii (narzeczona mnie już z laptopem chce wyrzucić przez balkon).

Poniżej skrypt którym wywołuje odpowiednie rekordy (nry id) jeden po drugim.

  1. <?php
  2. // połączenie z serwerem i bazą danych
  3. $mysqli = new mysqli('xxxx', 'yyyy', 'pass', 'baza');
  4. if ($mysqli->connect_error) {
  5. // w przypadku błędu (od wersji PHP 5.3), wyświetli się odpowiedni komunikat
  6. die('Connect Error ('.$mysqli->connect_errno.') '. $mysqli->connect_error);
  7. // w przypadku błędu (do wersji PHP 5.3), wyświetli się odpowiedni komunikat
  8. if (mysqli_connect_error()) {
  9. die('Connect Error (' . mysqli_connect_errno() . ') '
  10. . mysqli_connect_error());
  11. }
  12. }
  13.  
  14. $polaczenie = @new mysqli('xxxx', 'yyyy', 'pass', 'baza');
  15. if (mysqli_connect_errno() != 0){
  16. echo '<p>Wystąpił błąd połączenia: ' . mysqli_connect_error() . '</p>';
  17. }
  18. else {
  19. $wynik = @$polaczenie -> query("SELECT SKU, NAZWA, ILOSC FROM TABLE1 WHERE SKU = 50092");
  20. if ($wynik === false){
  21. echo '<p>Zapytanie nie zostało wykonane poprawnie!</p>';
  22. $polaczenie -> close();
  23. }
  24. else {
  25. echo '<p>Produkt, wybrany w formularzu:</p>';
  26. while (($produkt = $wynik -> fetch_assoc()) !== null){
  27. echo '<p>SKU: ' . $produkt['SKU'] . '</p>';
  28. echo '<p>NAZWA: ' . $produkt['NAZWA'] . '</p>';
  29. echo '<p>CSS: ' . $produkt['ILOSC'] . '</p>';
  30. echo '<hr />';
  31. }
  32. $wynik -> close(); // zwolnienie pamięci
  33. $polaczenie -> close();
  34. }
  35. }
  36.  
  37. else {
  38. $wynik = @$polaczenie -> query("SELECT SKU, NAZWA, ILOSC FROM TABLE1 WHERE SKU = 50093");
  39. if ($wynik === false){
  40. echo '<p>Zapytanie nie zostało wykonane poprawnie!</p>';
  41. $polaczenie -> close();
  42. }
  43. else {
  44. echo '<p>Produkt, wybrany w formularzu:</p>';
  45. while (($produkt = $wynik -> fetch_assoc()) !== null){
  46. echo '<p>SKU: ' . $produkt['SKU'] . '</p>';
  47. echo '<p>NAZWA: ' . $produkt['NAZWA'] . '</p>';
  48. echo '<p>CSS: ' . $produkt['ILOSC'] . '</p>';
  49. echo '<hr />';
  50. }
  51. $wynik -> close(); // zwolnienie pamięci
  52. $polaczenie -> close();
  53. }
  54. }
  55.  
  56. ?>
bostaf
Cytat(wallen @ 14.06.2017, 11:47:26 ) *
(narzeczona mnie już z laptopem chce wyrzucić przez balkon)

W trakcie lotu musisz strać trzymać się laptop nad ciałem, żeby się nie popsuł wink.gif

Cytat(wallen @ 14.06.2017, 11:47:26 ) *
-Informować mnie jeśli danego produktu nie ma w bazie

Jeśli produktu nie ma w bazie, to wynik fetch_assoc() w wierszu 26 będzie NULL. Wykorzystaj do do skonstruowania warunkowego wyświetlania produktu lub informacji o tym, że nie ma takiego produktu.

PS. Wywal wiersze od 37 do 55 z kodu w Twoim poście, bo Ci się niechcący dwa razy wkleił.
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.