Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Jak przekazać wynik zapytania MySQL dla mysql_num_rows
dr revuu
post 14.08.2011, 14:46:37
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 21.01.2010

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


Witam. Wiem, że do mysql_num_rows należy przekazać wynik zapytania MySQL np. "SELECT", jednak nie wiem jak to zrobić, a mój kod:

  1. $result=mysql_query("SELECT name FROM $tabela");
  2.  
  3. //w poniższej linii jest błąd
  4. $ilosc=mysql_num_rows($result);
  5. echo $ilosc;


generuje błąd: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource (...).

Proszę o wskazówkę.

Ten post edytował dr revuu 14.08.2011, 16:00:25
Go to the top of the page
+Quote Post
cycofiasz
post 14.08.2011, 14:51:49
Post #2





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


Od kiedy to nazwy pól dajemy w apostrofach?
Go to the top of the page
+Quote Post
dr revuu
post 14.08.2011, 15:59:43
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 21.01.2010

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


cycofiasz, będę uważał na składnię. Ale to nie rozwiązuje mojego problemu. Składnia, którą zastosowałem w innych skryptach nie powoduje błędów. Chodzi mi o to, jak przekazać wynik zapytania MySQL dla funkcji mysql_num_rows.

Ten post edytował dr revuu 14.08.2011, 16:00:49
Go to the top of the page
+Quote Post
cycofiasz
post 14.08.2011, 16:07:57
Post #4





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


Przekazujesz dobrze ale widocznie nadal coś jest źle w zapytaniu skoro problem nie rozwiązał się po usunięciu apostrofów. Czy teraz jest jakiś błąd?
Go to the top of the page
+Quote Post
potreb
post 14.08.2011, 16:12:36
Post #5





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


A może najpierw zastosować mysql_error?


--------------------

Go to the top of the page
+Quote Post
grzes999
post 14.08.2011, 16:32:45
Post #6





Grupa: Zarejestrowani
Postów: 305
Pomógł: 29
Dołączył: 5.07.2011

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


Spróbuj najpierw zapisać wynik w tablicy, a dopiero później zliczyć elementy.

Go to the top of the page
+Quote Post
dr revuu
post 14.08.2011, 18:38:59
Post #7





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 21.01.2010

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


Zastosowałem mysql_error. Funkcja zwróciła pusty ciąg, czyli błędu nie było. Dla pewności wyświetliłem dane za pomocą mysql_fetch_assoc + echo.

Zapisywałem dane w mysql_fetch_assoc, ale wynik jest ten sam.

Błąd jest nadal w mysql_num_rows. Komunikat oznacza, że przekazuję mu błędny zasób.

Sprawdziłem tabele i pola tabeli pod względem poprawności. Wszystko jest w porządku. Wrzucę cały kod, być może błąd jest spowodowany czymś wcześniej:


  1. <?php
  2. if(is_logged())
  3. {
  4. if($lvl==1){
  5. $pob=mysql_query("SELECT prod FROM $gry");
  6.  
  7. while($po=mysql_fetch_assoc($pob)){
  8.  
  9. $po[prod]=trim($po[prod]);
  10. $spr=mysql_query("SELECT nazwa FROM $firma WHERE nazwa=$po[prod]");
  11.  
  12. if(mysql_num_rows($spr)>0){
  13.  
  14. echo 'Było<br />';
  15. }
  16. else{
  17.  
  18. $dodaj=mysql_query("INSERT INTO $firma SET nazwa=$po_pw[prod]");
  19. if($dodaj==TRUE){
  20.  
  21. echo 'Dodano <br />';
  22. }
  23.  
  24. else{
  25. echo 'Nie dodano<br />';
  26. }
  27. }
  28. }
  29. }
  30. }
Go to the top of the page
+Quote Post
cycofiasz
post 14.08.2011, 18:46:00
Post #8





Grupa: Zarejestrowani
Postów: 711
Pomógł: 127
Dołączył: 5.07.2008
Skąd: Łódź

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


Kręcisz coś.

Daj echo "SELECT nazwa FROM $firma WHERE nazwa=$po[prod]"; i odpal to zapytanie przez phpMyAdmina i sprawdź czy zwraca błąd
Go to the top of the page
+Quote Post
amii
post 14.08.2011, 19:07:59
Post #9





Grupa: Zarejestrowani
Postów: 728
Pomógł: 76
Dołączył: 12.06.2009

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


Jak na moje to tu brakuje ciapków powinno być tak:
  1. $po['prod']=trim($po['prod']);


--------------------
gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet.
Zarabianie bez wysiłku na domenach bez ruchu: prolink.
Go to the top of the page
+Quote Post
jarmiar
post 14.08.2011, 20:39:40
Post #10





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


w zapytaniach widze zmienne, masz te zmienne gdzieś zdeklarowane?

czy tak po prostu zapisujesz nazwy tabel?


ogolnie zapytanie tak wyglada
  1. SELECT pole FROM tabela


--------------------
Jeśli my czegoś nie zrobimy, zrobią to za nas inni
Go to the top of the page
+Quote Post
dr revuu
post 4.09.2011, 18:16:32
Post #11





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 21.01.2010

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


Wróciłem po jakimś czasie do skryptu i rzeczywiście błąd był w zapytaniu. Niestety moja pewność nad sprawdzeniem czy zapytanie jest poprawne:
  1. $ret = mysql_query("SELECT pole FROM tabela WHERE pole=wartosc) or die(mysql_error());

Niestety nie było.

Wygenerowany błąd:
  1. Unknown column 'Kolumna' in 'where clause'


Trochę tego nie rozumiem, bo 'Kolumna' to wartość, którą przekazałem polu. Column powinno być równe "pole". Ktoś może mi to wyjaśnić?

Ten post edytował dr revuu 4.09.2011, 18:18:30
Go to the top of the page
+Quote Post
markonix
post 5.09.2011, 12:12:26
Post #12





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Cytat(dr revuu @ 4.09.2011, 19:16:32 ) *
Wróciłem po jakimś czasie do skryptu i rzeczywiście błąd był w zapytaniu. Niestety moja pewność nad sprawdzeniem czy zapytanie jest poprawne:
  1. $ret = mysql_query("SELECT pole FROM tabela WHERE pole=wartosc) or die(mysql_error());

Niestety nie było.

Wygenerowany błąd:
  1. Unknown column 'Kolumna' in 'where clause'


Trochę tego nie rozumiem, bo 'Kolumna' to wartość, którą przekazałem polu. Column powinno być równe "pole". Ktoś może mi to wyjaśnić?


Już nawet podświetlanie składni na forum wyraźnie wskazuje na błędy składniowe - mieszasz string zapytania SQL z PHP.
Zajrzyj: Temat: Jak poprawnie zadac pytanie


--------------------
Go to the top of the page
+Quote Post
nospor
post 5.09.2011, 12:15:09
Post #13





Grupa: Moderatorzy
Postów: 36 459
Pomógł: 6297
Dołączył: 27.12.2004




nie: pole=wartosc
a: pole='wartosc'
Czemu nie zaczynacie od podstaw tylko od razu skaczecie na środek jeziora?? Potopić się chcecie??


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 30.04.2024 - 10:57