Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: supplied argument is not a valid MySQL...
Forum PHP.pl > Forum > Bazy danych > MySQL
aleksander
Wiem co znaczy ten błąd, ale nie wiem co jest źle w moim skrypcie. Obsługę mysqla zrobilem prawie w całości z przykładów w manualu. Zadanie skryptu: logowanie, gdzie login/pass są zapisane w bazie. Wywala mi taki błąd:
Kod
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:usrapachehttpdhtmladminlogin.php on line 13



Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:usrapachehttpdhtmladminlogin.php on line 27

A oto kod programu (zacowałem oryginalne numery linijek):
[php:1:a4ca6e4ea9]<?php
ob_start();
session_start();

require("const.inc");

if ($_GET['action'] == 'login')
{
mysql_connect(DBHOST, DBUSER, DBPASS) or die('Nie można się połączyć: ' . mysql_error());
mysql_select_db(DBNAME);
$query = "SELECT login, pass FROM admin_users WHERE login=" . $_POST['login'] . " AND pass=" . $_POST['passwd'];
$result = mysql_query($query);
if(mysql_num_rows($result)>0)
{
//TU AKCJE JEZELI LOGIN I HASLO SA POPRAWNE
$session_time = 15; // czas trwania sesji w minutach
$_SESSION['user'] = $_POST['login'];
$_SESSION['expire'] = time() + 60 * $session_time;
if (isset($_POST['redirect']))
{
header ("Location: http://" . $_SERVER['HTTP_HOST'] . $_POST['redirect']);
die;
}
echo 'Zalogowałeś się.<br><a href="login.php?action=logout">Wyloguj się</a>';
break;
}
elseif (mysql_num_rows($result)==0)
{
echo "zle dane";
//header('Location: http://' . $_SERVER['HTTP_HOST'] . "/admin/401.php");
}
}
//dalsza czesc programu

?>[/php:1:a4ca6e4ea9]

Więc wie ktoś może na czym polega mój błąd??
Dodam tylko, że przykładowe zapytanie wygląda tak (skopiwane dla pewności):
[sql:1:a4ca6e4ea9]SELECT login, pass FROM admin_users WHERE login=olo AND pass=0000[/sql:1:a4ca6e4ea9]
HaRy
zapodaj
[php:1:32413597fa]<?php
$query = "SELECT login, pass FROM admin_users WHERE login=" .
$_POST['login'] . " AND pass=" . $_POST['passwd'];
$result = mysql_query($query) or die(mysql_error());
?>[/php:1:32413597fa]
i wszystko bedzie jasne smile.gif
spenalzo
Cytat
[sql:1:6b8f7633d4]SELECT login, pass FROM admin_users WHERE login=olo AND pass=0000[/sql:1:6b8f7633d4]

Khem.. złe nawyki z php są przenoszone potem do mysqla
[sql:1:6b8f7633d4]SELECT login, pass FROM admin_users WHERE login='olo' AND pass='0000'[/sql:1:6b8f7633d4]
aleksander
heh, dzięki! bardzo mi pomogliście. Tylko małe sprostowanko @spenalzo: W tego typu przypadkach ZAWSZE używam formy w ' ' (chodzi mi np. o wartości tagów html w funkcji echo: niektorzy piszą echo "<a href=www.php.pl"; zamiast ...href='www.php.pl'... ), ale z mysqlem w formie pisania skryptu zetknąłem się pierwszy raz i nie znałem tego typu kruczków. Ale sie poprawie biggrin.gif . thx
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.