Php/msql nie zwraca wyniku zapytania do bazy


(Mariusznowak65) #1

Witam,

połączyłem bazę (na wampserver) z php i próbuję stworzyć do niej zapytanie. Połączenie z samą bazą prawidłowe. Zapytanie mam takie:

SELECT *

FROM `placowki`.`worksheet`

WHERE `Miejscowość placowki` LIKE '%malbork%'

Zapytanie nie wywołuje żadnego błędu (w samym wampie tez wyszukuje prawidłowo), miejscowość też jest dobra wiec nie może zwracać pustego rekordu... a jednak nie wyświetla się nic innego jak wcześniej ustawione "Udało się połączyć z bazą danych". Ma ktoś może na to radę? PS. Baza zawiera listę sklepów wraz z nazwą i miejscowością. PS2> Baza zaimportowana z Excela. PS3. Umieszczam jeszcze sam kod php:

<?php 

$connection = @mysql_connect('localhost', 'root', '');

$db = @mysql_select_db('placowki', $connection) 

or die('Nie mogę połączyć się z bazą danych
Błąd: '.mysql_error()); 

echo "Udało się połączyć z bazą dancych!"; 


$query = "SELECT * FROM `placowki`.`worksheet` WHERE `Miejscowość placowki` LIKE '%malbork%'";

$result = mysql_query($query);


mysql_close($connection); 

?>

(binet-xp) #2
$query = "SELECT * FROM `placowki`.`worksheet` WHERE `Miejscowość placowki` LIKE '%malbork%'";

Kolumna z miejscowościami na pewno nazywa się "Miejscowość placowki"?? Może ta kolumna jest bez polskich znaków i bez spacji, bo raczej dziwne by przyjęło tobie ją ze spacją i polskimi ogonkami. Spróbuj wywołać takie zapytanie:

$query = "SELECT * FROM `worksheet` WHERE `Nazwa_kolumny_z_miejscowosciami` LIKE '%malbork%'";

([alex]) #3

Najpierw sprawdź co zwróci PhpMyAdmin na takie zapytanie.

Może nie masz takiej kolumny, może nie masz takiej tablicy, może nie masz miejscowości z ciągiem "malbork".

Nie łatwo jest szukać czarnego kota w ciemnym pokoju, zwłaszcza jeżeli go tam niema.


(Mariusznowak65) #4

Skasowałem bazę, zmieniłem w Excelu na nazwy proste jak "miejscowosc", zaimportowałem ponownie. Baza nazywa się xls_db a wszytskie dane znajdują się w automatycznie utworzonej tabeli worksheet.

Użyłem dwóch zapytań:

$query = "SELECT * FROM `worksheet` WHERE `miejscowosc` LIKE 'olsztyn'";

$query = "SELECT * FROM `xls_db`.`worksheet` WHERE `miejscowosc` LIKE '%malbork%'";

Na stronce nadal nic.

W samym phpmyadmin oba zapytania wykonują się prawidłowo i zwracają po kilka wyników (olsztyn zwrócił 0 rekordów, natomiast %olsztyn% zwrócił kilka wyników z olsztynem jak i z olsztynkiem).


([alex]) #5

A na jakiej podstawie twierdzisz że ci nic nie znalazło, w kodzie który podałeś nie jest nić wyświetlane.

Po:

$result = mysql_query($query);

dodaj:

echo '

| '.$col.' |

'; mysql_free_result($result);[/code]


(Mariusznowak65) #6

Dodałem. Jedynie w linijce

foreach($row as $col) echo ''.$col.';

dodałem ' za ostatnim

, bo rozsypywało php.

Działa! Dziękuje za pomoc :smiley:


([alex]) #7

Kto by mógł pomyśleć że chodzi ci o to że nie umiesz dostać się do danych zwróconych przez zapytanie.

Nawet jak pisałem ten poprzednia wypowiedź to myślałem że prawdopodobieństwo że o to chodzi jest na poziomie 1%.