Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Proszę o sprawdzenie prostego kodu
Forum PHP.pl > Forum > Przedszkole
Mazurek
Proszę o sprawdzenie prostego kodu. Po przesłaniu na serwer FTP poniższego kodu, przeglądarka nic nie wyświetla, ani błędów ani danych. Połączenie z bazą danych jest poprawnie skonfigurowane tu zmienione na aaaa.
  1. <?php
  2. // ***************************************
  3. // DANE DOSTĘPOWE DO BAZY
  4. $host="localhost";
  5. $bazalogin="aaaa";
  6. $bazahaslo="aaaa";
  7. $baza="aaaa";
  8. // ***************************************
  9.  
  10. $conn=mysql_connect($host,$bazalogin,$bazahaslo);
  11.  
  12. $pytanie="SELECT * FROM st_product DESC LIMIT 200";
  13. $wynik=mysql_query($pytanie);
  14.  
  15. while ($kom = mysql_fetch_array($wynik))
  16. {
  17. $nazwa= $kom['opt_name'];
  18. $nrkatalogu= $kom['code'];
  19. $ile = $kom['stock'];
  20.  
  21. $nazwa | <strong>$nrkatalogu </strong>| $ile <br />
  22.  
  23. ";
  24. }
  25.  
  26. else { echo "Blad pobierania danych sprawdz ustawienia skryptu. "; }
  27. ?>
viking
Co robi desc w zapytaniu? Dodatkowo może nie być rozszerzenia mysql.
Mazurek
DESC pozostało po zapytaniu z innego serwisu ORDER BY id DESC LIMIT 10 .
DESC osunąłem, nic nie zmieniło.
Uproszczenie do minimum
  1. $pytanie="SELECT * FROM st_product";
tez bez zmian. Żadnego komunikatu z przeglądarki. Powinny być chociaż znaczniki | |
Co znaczy że może nie być rozszerzenia mySQL?

Po zmianie kodu na
  1. $conn=mysql_connect($host,$bazalogin,$bazahaslo);
  2.  
  3. IF (!$conn) {
  4. die('Could not connect: ' . mysql_error());
  5. }
  6. echo 'Connected successfully';
  7. mysql_close($link);

Przeglądarka poprawnie wypluwa Connected successfully
viking
Jak klikniesz na podlinkowane strony dokumentacji w swoim kodzie zobaczysz wyjaśnienie na czerwono. Co to za konstrukcja while ... else? Włącz pełne raportowanie błędów.
Mazurek
Elsa jest po to jakby się nie wykonało
  1. while ($kom = mysql_fetch_array($wynik))
  2. {

viking
To fajnie ale wymyśliłeś sobie własną składnię.
https://www.php.net/manual/en/control-structures.while.php
Mazurek
Jaką składnię sobie wymyśliłem. Korzystam z tego kodu od około 12 lat na wielu hostingach i wielu stronach. wszędzie działa. To jest pętla whila wyświetlająca produkty z bazy danych.
Coś jest nie tak z tym kodem while? Może problem jest z wersją PHP na obecnym serwerze?
nospor
Cos ci sie myli. Zrozum to w koncu.

WHILE nie ma ELSE. Koniec kropka
IF ma ELSE. Poczatek przecinek

A jak chcesz nadal sie upierac przy swoim kodzie to zmien forum.
viking
Ale czego nie rozumiesz? Nie ma składni while {} else {}. Chyba że tak wyciąłeś kod że tam sa jakieś ify po drodze.
Mazurek
Nie chcę się upierać, chcę by mi to zadziałało. Mam wycięty fragment kodu i przerabiam na nowe potrzeby.
viking
No to wywal tego else i powinno się coś wyświetlić. I powtórzę jeszcze raz. Włącz raportowanie błędów pełne. Jak to zrobić masz w przypiętym temacie.
Mazurek
Mam kod poprawiony na
  1. <?php
  2.  
  3. // ***************************************
  4. // DANE DOSTĘPOWE DO BAZY
  5. $host="localhost";
  6. $bazalogin="aaaa";
  7. $bazahaslo="aaaa";
  8. $baza="aaaa";
  9. // ***************************************
  10.  
  11.  
  12. $conn=mysql_connect($host,$bazalogin,$bazahaslo);
  13.  
  14. $pytanie="SELECT * FROM st_product";
  15. $wynik=mysql_query($pytanie);
  16.  
  17. while ($kom = mysql_fetch_array($wynik))
  18. {
  19. $nazwa= $kom['opt_name'];
  20. $nrkatalogu= $kom['code'];
  21. $ile = $kom['stock'];
  22.  
  23. echo " $nazwa | <strong>$nrkatalogu </strong>| $ile <br />";
  24. }
  25.  
  26. ?>

Przeglądarka nic nie wyświetla.
viking
https://www.php.net/manual/en/function.error-reporting.php

// Turn off all error reporting
error_reporting(0);
Therminus
Wersja PHP na serwerze?
Być może musisz zastosować mysqli
Mazurek
PHP Version 5.6.40 na priv mogę podesłać dane z php info.

Wstawiłem
i nie ma żadnych błędów.
viking
  1. $wynik=mysql_query($pytanie);
  2. var_dump($wynik);
Mazurek
Inaczej.
Nazwa tabeli : st_product
chcę wyświetlić wszystkie produkty , ich numer_katalogowy oraz ilość_sztuk

Co tu nie działa?questionmark.gif
  1. $pytanie="SELECT * FROM st_product";
  2. $wynik=mysql_query($pytanie);
  3.  
  4. while ($kom = mysql_fetch_array($wynik))
  5. {
  6. $nazwa= $kom['opt_name'];
  7. $nrkatalogu= $kom['code'];
  8. $ile = $kom['stock'];
  9.  
  10. echo " $nazwa | <strong>$nrkatalogu </strong>| $ile <br />";
  11. }
nospor
Przestan sie bawic w ciuciubabki i quizy z nami w koncu. Wlacz debugowanie, bledy, jak nie raz proszono: TU masz wszystko opisane JAK TO ZROBIC:
Temat: Jak poprawnie zadac pytanie oraz przygotowac srodowisko pracy
ohm
Cytat(Mazurek @ 10.12.2019, 11:41:34 ) *
Coś jest nie tak z tym kodem while? Może problem jest z wersją PHP na obecnym serwerze?


Jeśli to php7 to na pewno jest problem z php na obecnym serwerze wink.gif A na pewno nie z mysql_
nospor
Juz drugi w tym temacie co nie umie czytac.... Czego wiec wymagac od poczatkujacego autora....
ohm
Ktoś musi bronić początkujących wink.gif
nospor
Jasne, ale nedzny to adwokat, ktory nie slucha co mowi jego podopieczny. A nasz autor tutaj mial juz dwoch takich ,z tobą włącznie tongue.gif
ohm
No coż, nie byłem nigdy studentem prawa i teraz wychodzi amatorszczyzna laugh.gif
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.