Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Pobieranie rekordów z MySQL'a - mega problem
tonyy85
post 14.11.2010, 21:36:23
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 14.11.2010

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


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. ?>


Ten post edytował tonyy85 14.11.2010, 21:57:15
Go to the top of the page
+Quote Post
wookieb
post 14.11.2010, 21:46:05
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Temat: Jak poprawnie zadac pytanie


--------------------
Go to the top of the page
+Quote Post
daros17
post 14.11.2010, 21:52:46
Post #3





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

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


Przeczytaj również to
mysql-query

Ten post edytował daros17 14.11.2010, 21:55:07
Go to the top of the page
+Quote Post
tonyy85
post 14.11.2010, 22:58:01
Post #4





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 14.11.2010

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


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. ?>
Go to the top of the page
+Quote Post
daros17
post 14.11.2010, 23:22:14
Post #5





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

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


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. }
Go to the top of the page
+Quote Post
tonyy85
post 14.11.2010, 23:43:11
Post #6





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 14.11.2010

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


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ę...
Go to the top of the page
+Quote Post
daros17
post 14.11.2010, 23:49:30
Post #7





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

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


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.  


Ten post edytował daros17 14.11.2010, 23:50:26
Go to the top of the page
+Quote Post
tonyy85
post 15.11.2010, 00:04:36
Post #8





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 14.11.2010

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


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

Ten post edytował tonyy85 15.11.2010, 00:07:21
Go to the top of the page
+Quote Post
daros17
post 15.11.2010, 00:12:22
Post #9





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

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


Testujesz to na lokalnym serwerze? Wrzuć to na jakiś serwer i zobacz czy działa. Mi działa prawidłowo ten kod.
Go to the top of the page
+Quote Post
tonyy85
post 15.11.2010, 00:27:22
Post #10





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 14.11.2010

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


Tak na lokalnym. Niestety nie mam dostępu do żadnego serwera obsługującego php+mysql
Go to the top of the page
+Quote Post
daros17
post 15.11.2010, 00:31:39
Post #11





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 27.08.2007

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


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...

Ten post edytował daros17 15.11.2010, 00:39:02
Go to the top of the page
+Quote Post
tonyy85
post 15.11.2010, 00:41:55
Post #12





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 14.11.2010

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


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.
Go to the top of the page
+Quote Post
wdev
post 15.11.2010, 03:23:12
Post #13





Grupa: Zarejestrowani
Postów: 86
Pomógł: 20
Dołączył: 20.01.2010

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


Że tak zapytam o podstawy...testowałeś kwerendę np w PHPMyAdmin albo konsoli MySQL? Wykonuje się bez zarzutu?


--------------------
-wdev-
Go to the top of the page
+Quote Post
tonyy85
post 16.11.2010, 19:39:17
Post #14





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 14.11.2010

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


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 ? ....

Ten post edytował tonyy85 16.11.2010, 19:40:49
Go to the top of the page
+Quote Post
lDoran
post 16.11.2010, 19:53:29
Post #15





Grupa: Zarejestrowani
Postów: 172
Pomógł: 13
Dołączył: 15.11.2009

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


Zainstaluj xampp'a
Go to the top of the page
+Quote Post
modern-web
post 16.11.2010, 20:10:01
Post #16





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


@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

Ten post edytował modern-web 16.11.2010, 20:10:50


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
tonyy85
post 20.11.2010, 15:51:58
Post #17





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 14.11.2010

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


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
Go to the top of the page
+Quote Post
Mephistofeles
post 20.11.2010, 16:27:00
Post #18





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


A jeszcze lepiej z PDO.
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: 20.07.2025 - 17:56