Zdravím mám tu jednu pro mě nepochopitelnou komplikaci u vcelku jednoduchého scriptu
//////////////////////////////////////////////////////////////////////////////////////////////////
$jmeno = $HTTP_POST_VARS['jmeno'];
$prijmeni = $HTTP_POST_VARS['prijmeni'];
$nick = $HTTP_POST_VARS['nick'];
$ulice = $HTTP_POST_VARS['ulice'];
$cislo = $HTTP_POST_VARS['cislo_popisne'];
$mesto = $HTTP_POST_VARS['mesto'];
$psc = $HTTP_POST_VARS['psc'];
$telefon = $HTTP_POST_VARS['telefon'];
$mail = $HTTP_POST_VARS['mail'];
$dbhost="mysql.webzdarma.cz";
$dbusr="smycmaweb";
$dbpassw="heslo";
$dbname="smycmaweb";
$link=mysql_connect($dbhost,$dbusr,$dbpassw) or die("<p>Server nepřipojen !!!</p>");
@$db=mysql_select_db($dbname,$link) or die("<p>Databáze nebyla nalezena !!!</p>");
$dotaz="SELECT * FROM 'registrace' WHERE 'mail'";
$result = mysql_query($dotaz,$link);
$pocet = mysql_num_rows($result);
if($pocet >= 1){
header('Location:registrace.php?id=3');
exit; }
//kontrola vyplnění povinných položek 7
/* elseif($jmeno == '' || $prijmeni == '' || $nick == '' || $mail == ''){
header('Location:registrace.php?id=2');
exit;}
else{
//zápis uživatele do databáze
$dotaz="INSERT INTO registrace(jmeno, prijmeni, nick, ulice, cp, mesto, psc, telefon, mail) VALUES('$jmeno','$prijmeni','$nick', '$ulice',
'$cislo', '$mesto', '$psc', '$telefon', '$mail')";
$sql = "SELECT * FROM registrace ORDER BY `jmeno` DESC";
$result=mysql_query($dotaz,$link);
$dotaz = "SELECT * FROM registrace";
$result=mysql_query($dotaz,$link);
$pocet=mysql_num_rows($result);
//přesměrování zpět
header('Location:registrace.php?id=1');
exit;
} */
?>
///////////////////////////////////////////////////////////////////////////////////////////////
Když si všimnete jsou tam vytvořeny proměnné které jsou odesílány z formuálře a pak tu máme podmínku if else která má zkontrolovat zda již není email zadaný do formuláře uložen v databázi a pokud ano má přesměrovat zpět na předchozí stránku s formálářem kde je zapsaná hláška, hláška sama o sobě funguje problém je v tom že když script spustím tak jak je tet že je jevo velká část zakomentovaná tak mi to hlásí
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /3w/wz.cz/s/smycmaweb/registrace/zpracuj.php on line 22
a když /* */ zruším tak to sice normálně proběhne ale provní kontrola se uplně vynechá nebo co a dojde až k té druhé jestly jsou vyplněny povinné položky a data se normálně zapíšou do databáze...
mě nejde do hlavy prč nefunguje ta kontrola emailu... ptal jsem se na to a bylo mi řečeno že script samotné kontroly emailu by měl být v pořádku ale nevím.... je to sice blbost ale nějak jsem se na ní zasekl a už jsem z toho kapku zoufalej.. předem děkuji za odpovědi...
s pozdravem
smycma
EDIT by Mozek: To heslo si radši změň..
http://php.net/manual/en/function.mysql-query.php
http://php.net/manual/en/function.mysql-num-rows.php
http://dev.mysql.com/doc/refman/5.0/en/select.html
Kód vypadá dobře, zkus ještě nepoužít proměnnou $dotaz, ale rovnou napsat:
žádná změna zkoušelů jsem dokonce vynechat result a vložit tam přímo ten řádek a stejně nic problém se neobjevuje u funkce mysql query ale mysq_num_rows... teť už vážně nevím pokud i vám se zdá kód v pořádku ...
Dobrý večer,
chybka je v proměnné dotaz - SQL příkaz neví, s čím má tabulku mail porovnávat.
Upravte příkaz proměnné do tohoto tvaru a mělo by to proběhnout (odzkoušeno na našem serveru):
$dotaz="SELECT * FROM `registrace` WHERE `mail` = \"$mail\"";
Tak jsem odeslal špatný script já jsem jej několikrát upravoval a to porovnávání jsem použil ale bez těch lomítek....
Takže už v pořádku, funkční? Pomohlo to tedy?
no musel jsem odmazat lomítka a najednou to jde tak jsem asi idiot nebo jestli jsem tam měl něajkou mezeru navíc nebo nevim protže jsem si jistej že takhle nějak jsem to měl a nešlo to ale už to funguje tak děkuju...