Autor Zpráva
binczech
Profil
Zdravím, po přihlášení mi hlásí chybu:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/users/binczech/binczech.mzf.cz/web/extraliga/secure.php on line 21 Sorry, the username you entered does not exist or your account is inactive.

Tak jsem koukl na řádek 21 a bylo tam: $checker=mysql_num_rows($compare);

Poraďte prosím, jak to mám vyplnit
Pop
Profil *
Co si chybu přeložit ..
Omlouváme se, přihlašovací jméno, které jste zadal neexistuje nebo je neaktivní.
Louka
Profil
Problém je v proměnné $compare, která neobsahuje správná data pro funkci mysql_num_rows(), nech si ji vypsat pomocí var_dump($compare) a zjistíš její skutečný obsah. A napiš sem řádek, kde se do ní přiřazuje hodnota.
binczech
Profil
To vím, ale je tam také chyba s tím mysql_num_rows()


Louka: Warning: mysql_num_rows() expects parameter 1 to be resource,
Louka
Profil
binczech:
Ano, to vidím, chybovou hlášku jsem četl. Parametr 1 je $compare, která v sobě má obsahovat odpověď databáze na mysql dotaz. Např:
$vysledek = mysql_query("select * from lide where jmeno = 'Franta'");
$pocet_frantu = mysql_num_rows($vysledek);
Chyba bude v dotazu, jelikož hláška ti píše, že dostáváš boolean (tedy asi false) - to vrací mysql_query(), pokud je dotaz vyhodnocen s chybou.
Zkontroluj, co posíláš do databáze.


Proto jsem chtěl řádek, kde se do $compare přiřazuje hodnota (tam byl měl být k vidění onen SQL dotaz).
binczech
Profil
Ptali jste se na řádek compare, zde je: $compare=mysql_query($check);
asi se budete ptát na řádek check - $check="SELECT password, userid, active, is_admin FROM sportsdb_users WHERE username = '$uname' LIMIT 1";
pro jistotu také uname $uname = substr($_POST['username'], 0, 20);
Bertram
Profil
binczech:
Ahoj, toto je tam proč?
$uname = substr($_POST['username'], 0, 20);
To používáš i pro ukládání do db při registraci?
binczech
Profil
Toto mají být tabulky, do kterých se budou vkládat výsledky zápasů z NHL 09 online ligy.
Bertram
Profil
binczech:
Zkus odpovědět znovu, jinak se nepohnem.
binczech
Profil
Ja se v tom nevyznam proste, zde je navod, no proste jak to ma normalni clovek pochopit................
http://www.theblog.ca/sports-league-standings
Louka
Profil
binczech:
Udělal jsem vše dle návodu a nemám žádný problém. Máš správné jméno, heslo a databázi v settings.php?


Protože řešíme podle mě úplně jiný problém, než bychom měli. Hledat chybu ve skriptu, který je stažený (a funkční) je hloupost. A jediné, co se nastavuje jsou přihlašovací údaje do DB.
Bertram
Profil
za tento kód:
$compare=mysql_query($check);
přidej:
echo mysql_errno() . ": " . mysql_error() ;
binczech
Profil
Louka Tak mi prosím popiš přesný postup pro blba, co jsi udělal ;)
Louka
Profil
Musíš mít server, na kterém běží PHP a MySQL, v MySQL musíš mít vytvořenou databázi (budu jí říkat např. moje_db) - edit: nebudu, tohle ti většinou přidělí poskytovatel :).
1. stáhneš ten .zip
2. rozbalíš ho k sobě na disk
3. v souboru settings.php (hned nahoře) nastavíš připojení k DB (ty údaje ti sdělí poskytovatel webhostingu - máš je?)
4. půjdeš do administrace databáze - adresu tohoto rozhraní také najdeš někde u posktytovatele, hledáš (asi) phpMyAdmin
5. v té administraci vybereš tvou databázi, klikneš nahoře na Import a naimportuješ tam soubor z tvého disku (standingssql.sql), tím se vytvoří tabulky v DB
6. soubory, které jsi v kroku 2 rozbalil na disk nahraješ přes FTP na server
7. v prohlížeči na tvém serveru najdeš soubor update.php (např. http://mojestranky.tld/standings/update.php), tam zadáš implicitní přihlašovací údaje ("admin", heslo "theblog"). Tím se dostaneš do administrace a hotovka.

Předpokládám, že výstup té aplikace pak najde uživatel zadáním http://mojestranky.tld/standings/standings.php

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: