Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Pobieranie rekordów z MySQL'a - mega problem
Forum PHP.pl > Forum > Przedszkole
tonyy85
Cześć. Mam problem z wyświetlaniem rekordów z bazy danych. Męczę się z tym od tygodnia. Pytałem wielokrotnie wujka Google, ale problem jak był tak jest.
Zamiast otrzymać normalne wyniki moich zapytań do bazy, otrzymuję pustą stronę. Zauważyłem, że jeśli ograniczę zapytanie do bazy do tylko jednej kolumny np "select nazwa from klienci" to nie otrzymuję pustej strony, a "nazwa" ( echo $wiersz['nazwa']; ) wyświetla się normalnie. Natomiast jeśli chcę pobrać dane z kilku wybranych kolumn lub z wszystkich (select * ...) i wyświetlić wybrane, to właśnie dostaję pustą stronę. Potrafię jedynie wyświetlić dane z jednej kolumny tabeli, a jak chcę np nazwę i adres to już niestety nie daje rady. Gdzieś musi być błąd.. Będę wdzięczny za pomoc w jego odnalezieniu. Oto kod:

  1. <?php
  2. @ $polaczenie = new mysqli('localhost', 'user', 'haslo', 'nazwa_bazy');
  3. if (mysqli_connect_errno())
  4. {
  5. echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
  6. }
  7.  
  8. $zapytanie = $polaczenie->query("SELECT * FROM klienci");
  9.  
  10. echo '<table>';
  11. while($wartosci = $zapytanie->fetch_assoc()) {
  12. echo '<tr><td>' . $wartosci['klientid'] . '</td><td>' . $wartosci['nazwa'] . '</td><td>' . $wartosci['adres_ul'] . '</td><td>' . $wartosci['adres_m'] . '</td></tr>';
  13. }
  14. unset($polaczenie);
  15. echo '</table>';
  16. ?>


próbowałem też takim sposobem:


  1. <?php
  2. @ $db = new mysqli('localhost', 'user', 'haslo', 'nazwa_bazy');
  3.  
  4. $zapytanie = "select nazwa, adres_ul, adres_m from klienci";
  5. $wynik = $db->query($zapytanie);
  6.  
  7. $ile_znalezionych = $wynik->num_rows;
  8.  
  9. echo '<p>Ilosc znalezionych pozycji: '.$ile_znalezionych.'</p>';
  10.  
  11. for ($i=0; $i < $ile_znalezionych; $i++)
  12. {
  13. $wiersz = $wynik->fetch_array();
  14. echo '<p><strong>'.($i+1).'.Nazwa firmy: ';
  15. echo $wiersz['nazwa'];
  16. echo '</strong><br />Adres: ';
  17. echo $wiersz['adres_ul'];
  18. echo '<br />Miasto: ';
  19. echo $wiersz['adres_m'];
  20. echo '</p>';
  21. }
  22.  
  23. $wynik->free();
  24. $db->close();
  25. ?>
wookieb
Temat: Jak poprawnie zadac pytanie
daros17
Przeczytaj również to
mysql-query
tonyy85
Cytat(daros17 @ 14.11.2010, 21:52:46 ) *
Przeczytaj również to
mysql-query

Czytam właśnie, ale o mysqli. Jak uda mi się rozwiązać ten problem to napiszę w jaki sposób. Liczę na kolejne propozycje

Niestety, nawet robiąc wszystko zgodnie z manualem, wciąż to samo..

  1. <?php
  2. $mysqli = new mysqli("localhost", "user", "pass", "database");
  3.  
  4. /* check connection */
  5. if (mysqli_connect_errno()) {
  6. printf("Connect failed: %s\n", mysqli_connect_error());
  7. exit();
  8. }
  9.  
  10. $query = "SELECT nazwa, adres_m FROM klienci";
  11.  
  12. if ($result = $mysqli->query($query)) {
  13.  
  14. /* fetch associative array */
  15. while ($row = $result->fetch_assoc()) {
  16. printf ("%s (%s)\n", $row["nazwa"], $row["adres_m"]);
  17. }
  18.  
  19. /* free result set */
  20. $result->close();
  21. }
  22.  
  23. /* close connection */
  24. $mysqli->close();
  25. ?>
daros17
Spróbuj tak:
  1. mysql_connect('localhost','uzytkownik','haslo');
  2. mysql_select_db('baza');
  3.  
  4.  
  5. $result = mysql_query('select * from tabela');
  6. while ($row = mysql_fetch_assoc($result)) {
  7. echo $row["id"]. ' ';
  8. echo $row["pelna_nazwa"];
  9. }
tonyy85
Cytat(daros17 @ 14.11.2010, 23:22:14 ) *
Spróbuj tak:
  1. mysql_connect('localhost','uzytkownik','haslo');
  2. mysql_select_db('baza');
  3.  
  4.  
  5. $result = mysql_query('select * from tabela');
  6. while ($row = mysql_fetch_assoc($result)) {
  7. echo $row["id"]. ' ';
  8. echo $row["pelna_nazwa"];
  9. }


Zrobiłem tak jak zaproponowałeś i nie wiem dlaczego to nie pomogło, zwróciło mi pustą stronę...
daros17
Musi działać, testowałem i mi działa. Czy w tabeli "tabela" masz utworzone kolumny id oraz pelna_nazwa i czy się w nich coś znajduje?

zamień na i napisz co wyświetla
  1. mysql_connect('localhost','uzytkownik','haslo')or die (mysql_error());
  2.  
  3. $result = mysql_query('select * from tabela') or die (mysql_error());
  4. while ($row = mysql_fetch_assoc($result)) {
  5. echo $row["id"]. ' ';
  6. echo $row["pelna_nazwa"];
  7. }
  8.  
tonyy85
Cytat(daros17 @ 14.11.2010, 23:49:30 ) *
Musi działać, testowałem i mi działa. Czy w tabeli "tabela" masz utworzone kolumny id oraz pelna_nazwa i czy się w nich coś znajduje?

zamień na i napisz co wyświetla
  1. mysql_connect('localhost','uzytkownik','haslo')or die (mysql_error());
  2.  
  3. $result = mysql_query('select * from tabela') or die (mysql_error());
  4. while ($row = mysql_fetch_assoc($result)) {
  5. echo $row["id"]. ' ';
  6. echo $row["pelna_nazwa"];
  7. }
  8.  


Zrobiłem tak:
  1. <?php
  2. mysql_connect('localhost','user','pass')or die (mysql_error());
  3.  
  4. mysql_select_db('wszyscy_klienci')or die (mysql_error());
  5.  
  6. $result = mysql_query('select * from klienci') or die (mysql_error());
  7.  
  8. while ($row = mysql_fetch_assoc($result)) {
  9.  
  10. echo $row["klientid"]. ' ';
  11.  
  12. echo $row["nazwa"];
  13.  
  14. }
  15.  
  16. ?>

i dostałem znów pustą stronę... upewniłem się, że sam mysql prawidłowo wyświetla dane z wybranych przeze mnie kolumn. W php coś szwankuje. Jednak, tak jak opisałem na początku, używając wymienionych tam 2 sposobów i wybierając tylko jedną kolumnę do wyświetlenia, jest ok. Ale to tylko połowa sukcesu bo chciałbym wyświetlić to co potrzebuję. Dodam, że mam zainstalowane najnowsze wersje apache, php i mysql
daros17
Testujesz to na lokalnym serwerze? Wrzuć to na jakiś serwer i zobacz czy działa. Mi działa prawidłowo ten kod.
tonyy85
Tak na lokalnym. Niestety nie mam dostępu do żadnego serwera obsługującego php+mysql
daros17
Może źle coś zainstalowałeś i dlatego nie działa, spróbuj przeinstalować. Może coś w pliku php.ini masz nie tak ustawione...
tonyy85
Też możliwe, chociaż instalowałem zgodnie ze wskazówkami z tej strony. Pokombinuję jeszcze, jak się nie uda to zainstaluję wszystko jeszcze raz. Dzięki za poświęcony czas. Pozdrawiam.
wdev
Że tak zapytam o podstawy...testowałeś kwerendę np w PHPMyAdmin albo konsoli MySQL? Wykonuje się bez zarzutu?
tonyy85
Tak, testowałem w konsoli mysql. phpMyAdmin zamierzam zainstalować, ale przewiduję, że tam też wszystko będzie ok tak jak w konsoli.

Witam. Próbowałem odpalić phpMyAdmina ale się nie udało. Po przekopiowaniu folderu z phpMyAdmin do katalogu z moimi stronami odpalilłem plik index.php. Wyświetlił się formularz logowania do phpMyAdmin, a pod nim informacja, że aplikacja może działać niewłaściwie bo brakuje biblioteki mcrypt. Odhaszowałem więc wszystkie niezbędne do działania phpMyAdmin rozszerzenia w php.ini (mcrypt mbstring, gd2, zip). Po dokonaniu wyżej wymienionych zmian w php.ini zrestartowałem apache'a i ponownie chciałem uruchomić phpMyAdmin. Niestety po tych zmianach nie zobaczyłem już formularza logowania do bazy, a pustą stronę. Dla mnie to dziwne , ale może mieć związek z opisanym przeze mnie na początku problemem i może to co przed chwilą napisałem naprowadzi kogoś na jego rozwiązanie. Długo już z tym walczę i na razie bez efektów. Może coś jest grane z plikiem libmysql.dll ? ....
lDoran
Zainstaluj xampp'a
modern-web
@up Albo WebServ - lepszy wg mnie...

Co do samego problemu... Po co bawisz się z mysql?
Lepiej od samego początku korzystaj z mysqli winksmiley.jpg
Dokładny opis znajdziesz tutaj:
http://webmade.org/porady/mysqli-mysql-baza-danych.php
tonyy85
Zainstalowałem XAMPP'a 1.7.3 i wszystko działa exclamation.gifsmile.gif Morał z tego taki, że czasem lepiej iść na skróty i zainstalować gotowca. Pozdrawiam i THX za pomoc
Mephistofeles
A jeszcze lepiej z PDO.
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.