Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Problem z pobieraniem wartości z fetch_row
RafalBeginner
post 3.06.2015, 12:17:20
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.06.2015

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


Witam na forum,

Jestem świeżakiem, zatem proszę o tony cierpliwości. Jeśli przetrwam przygodę z PHP/MySQL to być może wykażę cierpliwość w przyszłości wobec innych osób.

DO RZECZY:

W celach treningowych postanowiłem napisać prymitywny słownik angielsko-polski wyszukujący nazwy kolorów.

Stworzyłem bazę MySQL zawierającą tabelę z trzema kolumnami. Wszystko najwidoczniej się udało i po podejrzeniu w PHPmyAdmin widać bazę o nazwie słownik, z tabelą slownikenpl i kolumnami o nazwie "numerID", "angielski" i "polski"

Na razie zależy mi, aby z bazy MySQL pobrać odpowiedni wiersz i żeby zwrócił mi np. wyraz "biały" z kolumny "polski". Próbuję to zrobić poprzez pobranie wiersza zawierającego "white" z kolumny "angielski" przy pomocy WHERE.

Mam taki kod:

  1. <?php
  2. $con=mysqli_connect("localhost","root","haslo","slownik");
  3. // Check connection
  4. if (mysqli_connect_errno())
  5. {
  6. echo "Failed to connect to MySQL: " . mysqli_connect_error();
  7. }
  8.  
  9. $imie = 'white';
  10. $sql="SELECT angielski, polski FROM slownikenpl WHERE angielski = '$imie'";
  11.  
  12. if ($result=mysqli_query($con,$sql))
  13. {
  14. while ($row=mysqli_fetch_row($result))
  15. {
  16. echo $row[1];
  17. }
  18. mysqli_free_result($result);
  19. }
  20.  
  21. mysqli_close($con);
  22. ?>


Po wykonaniu kodu w przeglądarce pojawia się zupełnie pusta strona. Zero wyświetlanych błędów.

Co robię nie tak? Walczę już z tym dwa dni i nie mam już siły grzebać po Internecie. Wiem, że to zapewne coś trywialnego, ale please help smile.gif

Pozdrowienia
Rafał
Go to the top of the page
+Quote Post
Crash89
post 3.06.2015, 12:54:13
Post #2





Grupa: Zarejestrowani
Postów: 191
Pomógł: 7
Dołączył: 3.04.2013

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


w tym miejscu:
  1. {
  2. echo $row[1];
  3. }


zmień numer indeksu tablicy na 0.
A jak to nie pomoże wpisz w widoku echo var_dump($row), to pokaże czy coś w ogóle pobierasz z bazy danych.



Ten post edytował Crash89 3.06.2015, 12:56:58
Go to the top of the page
+Quote Post
RafalBeginner
post 3.06.2015, 14:00:38
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.06.2015

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


Cytat(Crash89 @ 3.06.2015, 13:54:13 ) *
w tym miejscu:
  1. {
  2. echo $row[1];
  3. }


zmień numer indeksu tablicy na 0.
A jak to nie pomoże wpisz w widoku echo var_dump($row), to pokaże czy coś w ogóle pobierasz z bazy danych.


Hej, dzięki wielkie za odpowiedź smile.gif Ale dalej są problemy.

Zmieniłem indeks na 0 - bez zmian, wrzuciłem echo var_dump($row) i zwróciło mi NULL

Zatem chyba nic nie pobiera z bazy danych i wygląda na to, że problem tkwi w samej bazie danych.

Tym bardziej, że wcześniej ucząc się z "pewnej strony" stworzyłem inną bazę. Tamta różniła się tylko tym, że zawierała kolumny numerID, Imię, Nazwisko i dodatkową kolumnę Wiek.
Dokładnie ten sam skrypt "współpracuje" bez problemu z tą starą bazą zwracając żądane wyniki.

Tworząc nową bazę robiłem to w taki sam sposób. W PHPmyAdmin baza, tabela i zawartość każdej kolumny wyświetlają mi się bez problemu, zatem baza i odpowiednie wiersze istnieją.

A jednak ten sam skrypt przy mojej bazie nie chce działać. Pewnie coś pochrzaniłem w nowej bazie.

Gdzie szukać problemu?
Go to the top of the page
+Quote Post
luki100011
post 3.06.2015, 14:26:25
Post #4





Grupa: Zarejestrowani
Postów: 243
Pomógł: 20
Dołączył: 20.04.2004
Skąd: Wielkopolska

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


Zobacz co masz w zmiennej $sql, zrób echo $sql.
To zapytanie wykonaj na bazie danych na przykład korzystając z phpmyadmin i zobacz czy zwraca wyniki.


--------------------
Go to the top of the page
+Quote Post
RafalBeginner
post 3.06.2015, 15:48:13
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.06.2015

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


@Crash89, @luki100011

Bardzo Wam dziękuję za naprowadzenie na źródło problemu.

Nie wiem czy się Wam przyznawać, ale dobra, powiem...

Otóż, wprowadzałem dane do tabeli przez skrypt php. Chciałem sobie ułatwić pracę i wpisałem kolory i odpowiedniki w tabeli w Excelu, razem ze wszystkimi innymi dodatkami, później tylko skopiowałem i ziuuuuup do skryptu.

Miało być tak pięknie, ale nie zauważyłem, że wraz z każdym słówkiem skopiowało mi się gratis po spacji. Stąd skrypt "nie widział" np. słówka "white" bo w bazie było "[spacja]white".

No cóż, pierwsze doświadczenie programistyczne zakończone sukcesem. Szkoda, że poszukiwanie spacji zajęło mi 2 dni.

Ale dzięki temu poznałem ludzi, którzy zechcieli pomóc za zwykłą dozgonną wdzięczność smile.gif

Muszę teraz pomyśleć nad rozwiązaniem usuwającym zbędne spacje. Znowu mam zajęcie na kolejne dwa dni biggrin.gif

Jeszcze raz dzięki!

Przedszkolak Rafał
Go to the top of the page
+Quote Post
casperii
post 3.06.2015, 19:03:10
Post #6





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


To czemu nie zrobiłeś:
$imie =trim('white');

Usuwaj białe znaki na etapie dodawania / wyciągania rekordu. O innych rzeczach to już nie będę nadmieniać typu htmlspecialchars

Ten post edytował casperii 3.06.2015, 19:04:37
Go to the top of the page
+Quote Post
RafalBeginner
post 4.06.2015, 00:00:44
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 3.06.2015

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


Cytat(casperii @ 3.06.2015, 20:03:10 ) *
To czemu nie zrobiłeś:
$imie =trim('white');

Usuwaj białe znaki na etapie dodawania / wyciągania rekordu. O innych rzeczach to już nie będę nadmieniać typu htmlspecialchars


O żebym to ja wiedział wcześniej o takich sztuczkach smile.gif Widocznie jeszcze do nich nie doszedłem w mojej nauce. Już wracam do książki. Coraz bardziej mnie to wciąga.

Dzięki casperii!
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: 12.06.2025 - 13:53