Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Problem z wyświetleniem informacji o braku rekordów w bazie MYSQL
wallen
post 14.06.2017, 10:47:26
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 14.06.2017

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


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. ?>
Go to the top of the page
+Quote Post
bostaf
post 14.06.2017, 11:50:46
Post #2





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


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ł.
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: 13.07.2025 - 01:17