Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]Błąd podczas wielokrotnego zapytania OR
Forum PHP.pl > Forum > Przedszkole
rex
Witam,

Podczas wykonywania zapytania do bazy danych:

  1. // Pobieranie użytkownika z bazy danych
  2. $pobierz = "SELECT ID, pozycja, imie, nazwisko, druzyna FROM uzytkownicy WHERE pozycja = 'PO' OR pozycja = 'ŚO' OR pozycja = 'LO' OR pozycja = 'S' ORDER BY ID DESC LIMIT 5";
  3. $dane = mysql_query($pobierz);
  4.  
  5. if (mysql_num_rows($dane) > 0)
  6. {
  7. while($wiersz = mysql_fetch_row($dane))
  8. {
  9. // Sprawdzamy czy zawodnik posiada drużyne
  10. if (($wiersz[4]) == NULL)
  11. {
  12. $druzyna = "brak klubu";
  13. echo("
  14. <tr>
  15. <td class=\"pozycja1\">$wiersz[1]</td>
  16. <td class=\"pozycja2\"><a href=\"#\">$wiersz[2] $wiersz[3]</a></td>
  17. <td>Klub: <a href=\"#\">$druzyna</a></td>
  18. </tr>
  19. ");
  20. }
  21. else
  22. {
  23. $druzyna = "$wiersz[4]";
  24. echo("
  25. <tr>
  26. <td class=\"pozycja1\">$wiersz[1]</td>
  27. <td class=\"pozycja2\"><a href=\"#\">$wiersz[2] $wiersz[3]</a></td>
  28. <td>Klub: <a href=\"#\">$druzyna</a></td>
  29. </tr>
  30. ");
  31. }
  32. }
  33. }
  34. else
  35. {
  36. echo("<tr><td><a href=\"#\">Brak nowych zawodników na tej pozycji!</a></td></tr>");
  37. }
  38.  
  39. // Zakończenie połączenia z bazą danych
  40. mysql_close($polaczenie);


Wyświetla się błąd o następującej treści:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/localhost/public_html/projekt/index.php on line 324

I tutaj moje pytanie, czy jest jakiś sposób aby te wszystkie OR pogrupować, (czytałem, że można zrobić to nawiasem, ale niestety to co próbowałem nie zadziałało. Sytuacja jest inna gdy jest tylko samo zapytanie WHERE i nie ma żadnego OR.
Pyton_000
WHERE pozycja IN ()
rex
Wpisałem tak:

  1. WHERE pozycja IN ('PO', 'ŚO', 'LO', 'S')

- niestety błędnie nadal.
nospor
$dane = mysql_query($pobierz) or die(mysql_error().' '.$pobierz);
rex
Po wrzuceniu na serwer podmienionej linijki, wyświetliło komunikat o następującej treści:
Illegal mix of collations for operation ' IN ' SELECT ID, pozycja, imie, nazwisko, druzyna FROM uzytkownicy WHERE pozycja IN ('PO', 'ŚO', 'LO', 'S') ORDER BY ID DESC LIMIT 5
nospor
Kolumna 'pozycja' ma inne kodowanie niz kodowanie tekstow jakie jej przekazujesz
rex
Faktycznie, w bazie danych MySQL miałem inne kodowanie niż kodowanie strony - aż dziwne, ale omyłkowe błędy zdarzają się z nieuwagi.

Problem rozwiązany, temat do zamknięcia.

ps. Dzięki za pomoc!
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.