Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Problem z pobieraniem wartości z fetch_row
Forum PHP.pl > Forum > Przedszkole
RafalBeginner
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ł
Crash89
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.

RafalBeginner
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?
luki100011
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.
RafalBeginner
@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ł
casperii
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
RafalBeginner
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!
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.