Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Błąd z zapytanie wyświetlającym wyniki.
Maniek1313
post
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


Próbuję wykonać zapytanie wyświetlające wszystkie dane z bazy w których kolumna rodzaj = dane3
  1. SELECT * FROM lista WHERE rodzaj='dane3';


Wyskakuje błąd
  1. MySQL zwrócił pusty wynik (zero rekordów).


I nie wiem w czym tkwi problem oczywiście tabela lista , kolumna rodzaj , i dane3 istnieją.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
Adi32
post
Post #2





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Coś musiałeś pokręcić...

A wykonaj najpierw:

  1. INSERT INTO lista SET rodzaj='dane3'


i spróbuj Twojego zapytania. Oczywiście, jeżeli masz jakieś kolumny NOT NULL to uzupełnij zapytanie dla nich jakimiś danymi.
Go to the top of the page
+Quote Post
Niktoś
post
Post #3





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


A spróbuj jeszcze tak:
  1. SELECT * FROM lista WHERE rodzaj="dane3";
Go to the top of the page
+Quote Post
Maniek1313
post
Post #4





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


Niktoś nadal nie działa.

Ta tabela ma 3 kolumny nazwa , id_rekordu , rodzaj

i jak wywołuje takie polecenie sql to działa

  1. SELECT * FROM lista WHERE nazwa="nazwa1";


Kolumna nazwa ma index primary
Kolumna id_rekordu ma index UNIQUE
Kolumna rodzaj nie ma indexu

PS. Dodam jeszcze że jeżeli rekordy dodam do bazy przez stronę phpmyadmin to działa zapytanie a jak przez php to nie chce wyświetlić rekordów :/

(IMG:style_emoticons/default/questionmark.gif)

Ten post edytował Maniek1313 15.12.2011, 19:14:40
Go to the top of the page
+Quote Post
Adi32
post
Post #5





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Jak wygląda zapytanie z poziomu PHP którym wysyłasz dane?
Go to the top of the page
+Quote Post
Maniek1313
post
Post #6





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


  1. $query = "SELECT * FROM lista WHERE rodzaj='dane3'";
  2. $result = mysql_query($query)
  3. or die("Nie prawidłowe zapytanie sql");


a tutaj masz jak dodaję rekordy

  1. $sql = mysql_query("INSERT IGNORE INTO `".$baza."`.`lista` (`nazwa`, `id_rekordu`, `rodzaj`) VALUES ('".$nazwa_bez."', '".$zmiana4."', '".$rodzaje4."');")


Ten post edytował Maniek1313 15.12.2011, 20:08:44
Go to the top of the page
+Quote Post
Adi32
post
Post #7





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Cytat(Maniek1313 @ 15.12.2011, 20:04:27 ) *
  1. $query = "SELECT * FROM lista WHERE rodzaj='dane3'";
  2. $result = mysql_query($query)
  3. or die("Nie prawidłowe zapytanie sql");


a tutaj masz jak dodaję rekordy

  1. $sql = mysql_query("INSERT IGNORE INTO `".$baza."`.`lista` (`nazwa`, `id_rekordu`, `rodzaj`) VALUES ('".$nazwa_bez."', '".$zmiana4."', '".$rodzaje4."');")


  1. $sql = mysql_query("INSERT INTO
  2. $baza.lista
  3. SET
  4. nazwa='$nazwa_bez',
  5. id_rekordu='$zmiana4',
  6. rodzaj = '$rodzaje4'")


Nie używaj IGNORE bez potrzeby.
Sprawdź czy wszystkie zmienne niosą dane.

Ten post edytował Adi32 15.12.2011, 20:23:16
Go to the top of the page
+Quote Post
Maniek1313
post
Post #8





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


potrzebuję IGNORE gdyż te dane do bazy danych dodawane są w pętli i jeżeli dany rekord już istnieje to go pomija
Go to the top of the page
+Quote Post
Adi32
post
Post #9





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Czyli najprawdopodobniej nie dodajesz wcale wiersza zawierającego:

rodzaj='dane3'

ponieważ pewnie próbujesz dodać id_rekordu które już istnieje.

Taka hipoteza.

Dziwię się czemu większość ludzi korzysta z tego sposobu budowania zapytań :/

Ten post edytował Adi32 15.12.2011, 20:33:52
Go to the top of the page
+Quote Post
Maniek1313
post
Post #10





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


a jak mam inaczej budować zapytania (IMG:style_emoticons/default/questionmark.gif)



dane3 na 100% jest w bazie danych

Ten post edytował Maniek1313 16.12.2011, 09:06:56
Go to the top of the page
+Quote Post
Adi32
post
Post #11





Grupa: Zarejestrowani
Postów: 348
Pomógł: 26
Dołączył: 8.10.2008
Skąd: Lublin

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


Dziwny ten Twój problem, wiersz dodaje się inaczej z poziomu PHP niż z PhpMyAdmina? I wpływa to na select?

Co do budowy zapytań to jest od groma klas do relacji które są bardzo pomocne.

Ja wykonuje zapytania tak:

  1. $db = baza::getInstance();
  2.  
  3. if($uzytkownicy = $db->query("SELECT * FROM user")->res()) {
  4. foreach ($uzytkownicy as $uzytkownik) {
  5. $table = new table('uzytkownicy');
  6. // itd
  7. }
  8. }
  9.  


Ten post edytował Adi32 16.12.2011, 09:35:09
Go to the top of the page
+Quote Post
Maniek1313
post
Post #12





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


jak dodam rekord do bazy przez php to tych nie wykrywa jak chce wypisać z rodzaj dane3 a jak dodam przez phpmyadmin to wyświetli :/
Go to the top of the page
+Quote Post
tomec
post
Post #13





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 16.12.2011

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


Sprawdź uprawnienia do bazy. Do PHPmyadmina pewnie logujesz się na roota? Zapytanie przez przeglądarkę wykonywane jest z poziomu domyślnego usera www-data. Jesli się mylę niech ktoś mnie poprawi...
Go to the top of the page
+Quote Post
Maniek1313
post
Post #14





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


tak tylko jest jak się logujesz na localhoscie a na serwerze jak masz to masz przypisanego jednego użytkownika , który ma do wykorzystanie jedną bazę (zależy od serwera w niektórych można stworzyć więcej baz danych).
Go to the top of the page
+Quote Post
Niktoś
post
Post #15





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

Ostrzeżenie: (10%)
X----


Jeśli zapytanie Tobie działa w sql ,a nie chce działać w PHP ,to jaki z tego wniosek?
Go to the top of the page
+Quote Post
Maniek1313
post
Post #16





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


zapytanie działa tylko że elementy dodane przez php do bazy nie są wyświetlane nawet jak wejdę do phpmyadmin i wywołam zapytanie to wyświetla tylko te rekordy które dodałem ręcznie a te co dodałem z poziomu php są omijane

spróbuję dodać or die(mysql_error()); i zobaczymy co wyskoczy

ps. nic nie wyskakuje czyli zapytanie jest dobre

zrobiłem zrzut danych z bazy w pliku sql i wyszło że każde rekord w kolumnie rekord ma na końcu \r

i jak zrobiłem takie zapytanie to działa

  1. SELECT * FROM lista WHERE rodzaj='dane3\r';


Ten post edytował Maniek1313 16.12.2011, 15:19:05
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: 24.08.2025 - 20:35