Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/MYSQL] sortowanie dziwny błąd
Forum PHP.pl > Forum > Gotowe rozwiązania
tomek55
Mam taki kod

[php:1:d00898a8f5]<?php
function list_rows($limit, $page) {

global $h1_tbl, $PHP_SELF, $op, $id;

echo'<form name="sortowanie" action="humor.php" method="get"><input
type="hidden" name="id" value="'.$id.'">oceń: <select name="sort"
size="1"><option name="sort" value="date-ASC">wg daty</option>
</select> <input type="submit" value="Sortuj">';


$query = "SELECT * FROM $h1_tbl WHERE cat=$id AND stat<>5 ORDER by $sort";

echo mysql_error();


$result = mysql_query($query);
$ile = mysql_num_rows($result);

if($ile==0) {

echo '<center>Nie znaleziono dowcipów w tej kategorii!<br><br>';

} else {

$znk = $page * $limit;
mysql_data_seek($result, $znk);


///// dalszy kod

?>[/php:1:d00898a8f5]

moim zdaniem powinno być wszystko ok ale wyświetla mi taki błąd:

Kod
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web31/html/module/humor.aim.php on line 211



Nie znaleziono dowcipów w tej kategorii!



Jak ktoś potafi mi pomóc będe wdzięczny...
hwao
[php:1:31fe7a871b]<?php
$result = mysql_query($query) or
die(mysql_error());
$ile = mysql_num_rows($result) or
die(mysql_error());
?>[/php:1:31fe7a871b]
I Ci wyswietli porblem :]
tomek55
takie coś sie pojawiło:

Kod
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1


Co teraz mam zrbić...?
hwao
Po 1 poprawic troche zapytanie do mysql:
[php:1:57a0882ce3]<?php
$query = "SELECT * FROM ".$h1_tbl." WHERE cat='".$id."' AND stat<>5 ORDER by '".$sort."' ";
?>[/php:1:57a0882ce3]
Pozatym nie znam czegos takiego:
[...]WHERE cat='".$id."' AND stat<>
Może chodziło o <= :?:
Jeżeli nadal nie bedzie działać to najlepiej wziac sobie zapytanie w phpmyadmina i wklajic takie zawsze dziala smile.gif
tomek55
Teraz nie wyświetla błędu ale nie chce sortować, coś mam źle w formularzu... może da sie jakoś przekazać wartoś zmiennej $sort np przez link... bo w formularzu nie wiem taki adres sie w przeglądarce pojawia: humor.php?id=11&sort=ocena-DESC&id=170&mark=3

a chyba powinien taki..

humor.php?id=11&sort=ocena-DESC - ale ten nawet jak sam wpisze to nie działa...

Jeśli chodzi o "<>" to jest z jportala i działało wcześniej chcem se dorobić sortowanie...
FiDO
Akurat operator <> w MySQL'u istnieje, więc nie to jest błędne.
Na jakiej wersji php odpalasz ten skrypt? Podejrzewam, że chodzi o problem z register_globals...
tomek55
wersja 4.3.3
FiDO
Tak wlasnie myslalem...
Zmien na chwile register_globals na on (w php.ini) i sprawdz czy zadziala (powinno). Potem przywroc to na off i bedziesz musial zamienic wszystkie odwolania do parametrow GET czy POST. Nie wiem, ktore to beda zmienne u Ciebie, wiec najlepiej napisz, ktore zmienne w tej funkcji skad pochodza (np. z formularza czy z paska adresu).

Przed mysql_query mozesz dac tez: echo $query;, w ten sposob latwiej znalezc blad w zapytaniu.
tomek55
A jak moge zmienić register_globals na on nie mam dostępu do tego pliku...
hwao
To pozamieniaj dane z
Formularza a action="post" na
$_POST['nazwa_inputa'];
Formularza a action="get" na
$_GET['nazwa_inputa'];
Cookie na
$_COOKIE['nazwa'];
Sessje na:
$_SESSION['nazwa'];

Albo daj cos takiego na poczatku kodu:
[php:1:b15b446440]<?php
foreach($_POST AS $nazwa => $wartosc)
{
$$nazwa = $wartosc;
}
?>[/php:1:b15b446440]
O ile dobrze pamietam smile.gif to zamieni Ci dane z np: $_POST['cos'] = '2'; na $cos = '2'; smile.gif
tomek55
jeśli dobrze zrozumiałem to formularz i zapytanie powinno wyglądać tak:

[php:1:870a4f9944]<?php
echo'<form name="sortowanie" action="humor.php" method="get"><input
type="hidden" name="id" value="'.$id.'">oceń: <select name="sort"
size="1"><option name="sort" value="date-ASC">wg daty</option>
</select> <input type="submit" value="Sortuj">';

$query = "SELECT * FROM $h1_tbl WHERE cat=$id AND stat<>5 ORDER by '$_GET[sort]'";
?>[/php:1:870a4f9944]

Ale to niestety nie działa znowu sie jakiś dziwny adres w przeglądarce pojawia..
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.