Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Problem z MySQL, ...gdy wszystko wydaje się poprawne
thomson89
post
Post #1





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Witam!

Prosty kod, zwraca mi dwa errory. Nie wiem czym to jest spowodowane. Zapytania są poprawne, testowałem w PhpMyAdmin. Dlaczego tak się dzieje?

Kod
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home2/gla10000/public_html/tresc/bizuteria/galeria_wszystkie.php on line 58

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home2/gla10000/public_html/tresc/bizuteria/galeria_wszystkie.php on line 78


  1. //laczenie z baza danych
  2. $polaczenie = polacz($serwer, $baza, $uzytkownik, $haslo);
  3.  
  4. //zapytania
  5. $query1 = 'SELECT * FROM `wyroby` ORDER BY RAND() LIMIT '.$start.', '.$perPage;
  6. $query2 = 'SELECT * FROM `wyroby`';
  7.  
  8. //wyniki
  9. $result = mysql_query($query1);
  10. $result2 = mysql_query($query2);
  11.  
  12. /* ----------
  13.   WYNIKI
  14. ---------- */
  15.  
  16. print '<table cellspacing="2">';
  17. while($record = mysql_fetch_assoc($result)) {
  18. //wyswietlanie wynikow
  19. print '<tr><td align="right" width:247px;">';
  20. //zdjęcie
  21. print '<a href="wyroby/'.$record['kat_zd'].$record['nazwa_zd'].'" rel="lightbox[wyroby]" title="Symbol: '.$record['symbol'].'">';
  22. print '<img src="wyroby/'.$record['kat_zd_m'].$record['nazwa_zd_m'].'" /></a>';
  23. print '</td><td valign="top">';
  24. print '<br><b>Symbol: </b>'.$record['symbol'].'<br>';
  25. print '<b>Cena: </b>'.$record['cena'].'<br><b>Opis: </b>'.$record['opis'].'<br>';
  26. print '</td></tr>';
  27.  
  28. }
  29. print '</table>';


EDIT: Dodałem
  1. if($polaczenie)
  2. echo 'OK!';

Co zwróciło mi na stronie
Kod
OK!


Ten post edytował thomson89 11.11.2009, 20:30:01
Go to the top of the page
+Quote Post
Zosiek
post
Post #2





Grupa: Zarejestrowani
Postów: 140
Pomógł: 22
Dołączył: 1.05.2009
Skąd: Będzin

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


A daj tak
  1. $query1 = 'SELECT * FROM `wyroby` ORDER BY RAND() LIMIT '.$start.', '.$perPage.'';


Ten post edytował Zosiek 11.11.2009, 20:42:39
Go to the top of the page
+Quote Post
thomson89
post
Post #3





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


To nic nie dało.
Go to the top of the page
+Quote Post
thek
post
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Sprawdź jak te zapytania wyglądają idac do bazy (jakieś echo czy coś w tym stylu). Może start i/lub perPage się nie inicjalizują, przez co idzie zbugowane do bazy i wywala się przy mysql_query. Zawsze możesz wyświetlić też mysql_error() (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
iVorIus
post
Post #5





Grupa: Zarejestrowani
Postów: 145
Pomógł: 18
Dołączył: 11.11.2008
Skąd: Pwo

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


  1. $query1 = "SELECT * FROM wyroby ORDER BY RAND() LIMIT '" . $start . "', '" . $perPage . "'";


O to chodzi?

Ten post edytował iVorIus 12.11.2009, 01:04:30
Go to the top of the page
+Quote Post
thomson89
post
Post #6





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Już tak próbowałem...

echo $result zwraca jakieś słowo chyba resources i #10 lub #9 na końcu.
Go to the top of the page
+Quote Post
piotrooo89
post
Post #7


Newsman


Grupa: Moderatorzy
Postów: 4 005
Pomógł: 548
Dołączył: 7.04.2008
Skąd: Trzebinia/Kraków




a co zwraca Ci mysql_error()?
Go to the top of the page
+Quote Post
thek
post
Post #8





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Chodziło mi o treść zapytania, zanim pójdzie do bazy, ale już po wstawieniu za zmienne wartości..., czyli echo $query1, echo $result Ci zwróci wskaźnik do resource, czyli nic Ci to nie powie. Za to jawna treść zapytania może powiedzieć, czy zmienne nie są puste, a więc czy aby nie wywalą błedu w bazie. Wtedy mysql_error wskazałby Ci źródło problemu: błędne zapytanie i miejsce jego wystąpienia.
Go to the top of the page
+Quote Post
thomson89
post
Post #9





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Nie wywala nic...
Go to the top of the page
+Quote Post
Makciek
post
Post #10





Grupa: Zarejestrowani
Postów: 126
Pomógł: 5
Dołączył: 7.03.2009
Skąd: Rzeszów

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


Cytat(thomson89 @ 11.11.2009, 21:17:19 ) *
  1. //zdjęcie
  2. print '<a href="wyroby/'.$record['kat_zd'].$record['nazwa_zd'].'" rel="lightbox[wyroby]" title="Symbol: '.$record['symbol'].'">';
  3. print '<img src="wyroby/'.$record['kat_zd_m']."=".$record['nazwa_zd_m'].'" /></a>';// tu czasem nie powinno byc =, tak samo jak wyżej?
  4. print '</td><td valign="top">';
  5. print '<br><b>Symbol: </b>'.$record['symbol'].'<br>';
  6. print '<b>Cena: </b>'.$record['cena'].'<br><b>Opis: </b>'.$record['opis'].'<br>';
  7. print '</td></tr>';
  8. }
  9. print '</table>';


czasem nie brakuje =

Ten post edytował Makciek 12.11.2009, 17:03:00
Go to the top of the page
+Quote Post
thomson89
post
Post #11





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Nie, a pozatym błąd wywalany jest wyżej...

Pole 'kat_zd' ma sciezke pliku, więc w/img/cos/itd/ (zawsze na końcu jest znak /)
a nazwa_zd to po prostu, np. siema.jpg
Go to the top of the page
+Quote Post
piotr94
post
Post #12





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


  1. $query1 = 'SELECT * FROM `wyroby` ORDER BY RAND() LIMIT '.$start.', '.$perPage;
  2. echo($query1);

i napisz co Ci wyświetli (IMG:style_emoticons/default/haha.gif)
Go to the top of the page
+Quote Post
thomson89
post
Post #13





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Kod
SELECT * FROM `wyroby` ORDER BY RAND() LIMIT 0, 10
Go to the top of the page
+Quote Post
piotr94
post
Post #14





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


hmm...
mnie to wygląda na błąd w zapytaniu SQL
jeśli masz dostęp do phpmyadmina to wklep w nim to zapytanie które pokazałeś kod wyżej i powinno pokazać co jest w nim nie tak ;-)
Go to the top of the page
+Quote Post
thomson89
post
Post #15





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Cytat(thomson89 @ 11.11.2009, 20:17:19 ) *
Zapytania są poprawne, testowałem w PhpMyAdmin.



Problem jest banalny (IMG:style_emoticons/default/haha.gif)

Było złe kodowanie pliku config.php (z BOM). Dziwię się tylko że żadnych błędów nie było przy połączeniu a zmiana kodowania wszystko zmieniła.
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: 22.12.2025 - 19:51