Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Problem z pobieraniem wartości z fetch_row
RafalBeginner
post
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 (IMG:style_emoticons/default/smile.gif)

Pozdrowienia
Rafał
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Crash89
post
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
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ź (IMG:style_emoticons/default/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
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
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ść (IMG:style_emoticons/default/smile.gif)

Muszę teraz pomyśleć nad rozwiązaniem usuwającym zbędne spacje. Znowu mam zajęcie na kolejne dwa dni (IMG:style_emoticons/default/biggrin.gif)

Jeszcze raz dzięki!

Przedszkolak Rafał
Go to the top of the page
+Quote Post
casperii
post
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
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 (IMG:style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 06:53