mysql_num_rows() + mysql 5 = blad ?

0

Witam, mam oto taki kod, służący do rejestracji.

<?php
include("config.php");
mysql_connect($db_serwer,$db_user,$db_pass)or die("Nie mozna nawiazac polaczenia z baza"); //polaczenie z baza danych
mysql_select_db($db_name)or die("Wystapil blad podczas wybierania bazy danych");

function ShowForm($komunikat=""){	//funkcja wyswietlajaca formularz rejestracyjny
	echo "$komunikat<br>";
	echo "<form action='rejestruj.php' method=post>";
	echo "Login: <input type=text name=login><br>";
	echo "Haslo: <input type=text name=haslo><br>";
	echo "<input type=hidden value='1' name=send>";
	echo "<input type=submit value='Zarejestruj mnie'>";
	echo "</form>";
}
?>
<!DOCTYPE html
	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
	<title>Formularz rejestracyjny</title>
</head>
<body>
<?php
if($_POST["send"]==1){	//sprawdzanie czy formularz zostal wyslany
	if(!empty($_POST["login"]) && !empty($_POST["haslo"])){	//oraz czy uzupelniono wszystkie dane
		if(mysql_num_rows(mysql_query("select * from users where user_login='".htmlspecialchars($_POST["login"]."'"))))ShowForm("Uzytkownik o podanym loginie juz istnieje!!!"); // sprawdzanie czy uzytkownik o podanej nazwie juz istnieje
		else{
			mysql_query("insert into users values(NULL, '".htmlspecialchars($_POST["login"])."', '".htmlspecialchars(md5($_POST["haslo"]))."')"); // zapisywanie rekordu do bazy
			echo "Rejestracja przebiegla pomyslnie. Mozesz teraz przejsc do <a href='index.php'>strony glównej</a> i sie zalogowac.";
			}
	}
	else ShowForm("Nie uzupelniono wszystkich pól!!!");
}
else ShowForm();
mysql_close(); //zamykanie polaczenia z baza
?>
</body>
</html>

Jeszcze nie jest skończony, ale pod dodaniu usera do bazy, i później podczas próby logowania wyskakuje :

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Programy\WebServ\httpd-users\php\rejestruj.php on line 27
Rejestracja przebiegla pomyslnie. Mozesz teraz przejsc do strony glównej i sie zalogowac.

Jak pozbyć sie tego Warninga ? nie jestem specem od php ;/ wiec pojecia ne mam. Dodam ze logowanie przebiega poprawnie. Testuje na WebServ z MySql 5.0.46 / PHP 5.2.5 / Apache 2.2.6

0

echo mysql_error() przed mysql_num_rows i przeczytaj komunikat bledu.

0

" is not a valid MySQL result" - ale nic mi to nie mowi :/ dlaczego nie prawidlowy wynik ?

0

Wypisz caly komunikat, ktory poda mysql_error...

0

mam to samo,

kod:

		$query = "SELECT * FROM authuser WHERE uname='$username' AND passwd=MD5('$password') AND status <> 'inactive'";

        $UpdateRecords = "UPDATE authuser SET lastlogin = NOW(), logincount = logincount + 1 WHERE uname='$username'";
		$connection = mysql_connect($this->HOST, $this->USERNAME, $this->PASSWORD);

		$SelectedDB = mysql_select_db($this->DBNAME);
		$result = mysql_query($query);

		$numrows = mysql_num_rows($result);
		$row = mysql_fetch_array($result);

a warning:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /homepages/32/d406756409/htdocs/ecommerce/intus/admin2000/vauth.php on line 47

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /homepages/32/d406756409/htdocs/ecommerce/intus/admin2000/vauth.php on line 48

0

Do pobrania ilości rekordów używaj sql'owego COUNT(), zrób mysql_query($query) OR die(mysql_error()); a przed tym daj echo $query, żeby zobaczyć co siedzi w zapytaniu

0
konrados napisał(a)

Do pobrania ilości rekordów używaj sql'owego COUNT(), zrób mysql_query($query) OR die(mysql_error()); a przed tym daj echo $query, żeby zobaczyć co siedzi w zapytaniu

ok, a możesz dla mojego kodu dać przykład z tym COUNT() poprawny?, bo znaleźć nie mogę...

złą bazę wołałem, ale mam inny problem:
u nowego providera mam problem z kodem który działał, a teraz nic nie zwraca:

  $sqlQuery = "select * from photos where part = '".$part."' order by id asc";
  $sqlResult = mysql_query($sqlQuery);
  if ($sqlResult) {
    $num_rows = mysql_num_rows($sqlResult);
    if ( $num_rows == 0 ) {
      print("Brak zdjęć na podstronie <i>".$part_txt."</i>");
    } else {
      print("<table cellspacing=\"0\" cellpadding=\"10\" class=\"table\">");
      while ($row = mysql_fetch_array($sqlResult)) {
 

itd.

nie widzę danych, a w bazie są bo się upewniłem w phpMyAdmin

co to jest źle?

już ok, muszę dla tego kodu robić:
$part = $_GET['part'];

bo global variables nie są ustawione

wcizmowski napisał(a)

złą bazę wołałem, ale mam inny problem:
u nowego providera mam problem z kodem który działał, a teraz nic nie zwraca:

  $sqlQuery = "select * from photos where part = '".$part."' order by id asc";
  $sqlResult = mysql_query($sqlQuery);
  if ($sqlResult) {
    $num_rows = mysql_num_rows($sqlResult);
    if ( $num_rows == 0 ) {
      print("Brak zdjęć na podstronie <i>".$part_txt."</i>");
    } else {
      print("<table cellspacing=\"0\" cellpadding=\"10\" class=\"table\">");
      while ($row = mysql_fetch_array($sqlResult)) {
 

itd.

nie widzę danych, a w bazie są bo się upewniłem w phpMyAdmin

co to jest źle?

1 użytkowników online, w tym zalogowanych: 0, gości: 1