problem
6 отговора
231 прегледа
problem
Здравейте!
Имам следния проблем:
Правя форма за регистрация на РНР, която пролзва таблица на MySql.
Опитах се да направя проверка преди регистрацията за съществуващо потребителско име.
Кода на проверката обаче въобще бива прескочен и се изпълнява кода за регистрация, като си дублира записи...
Използвах конструкцията IF неработещата проверка ELSE регистрация.
Ето и кода:
<?php
$conn=@mysql_connect( "localhost:3306", "user", "pass" )
or die( "Грешка в конекта с mysql");
$rz = @mysql_select_db( "database", $conn ) or die( "Грешка" );
$query = "select count(*) from Dostyp where potr_ime = '$potr_ime'";
$result = mysql_query( $query );
if(!$result)
{
echo ('Грешка в запитването');
die("Заявката не може да бъде изпълнена");
}
if( $row = mysql_fetch_array($result) && !empty( $row[0] ) )
echo("Това потребителско име вече е заето!");
else
{тука конструкцията вече работи безпроблемно.
Не мога да открия грешката...някой може ли да помогне?
Имам следния проблем:
Правя форма за регистрация на РНР, която пролзва таблица на MySql.
Опитах се да направя проверка преди регистрацията за съществуващо потребителско име.
Кода на проверката обаче въобще бива прескочен и се изпълнява кода за регистрация, като си дублира записи...
Използвах конструкцията IF неработещата проверка ELSE регистрация.
Ето и кода:
<?php
$conn=@mysql_connect( "localhost:3306", "user", "pass" )
or die( "Грешка в конекта с mysql");
$rz = @mysql_select_db( "database", $conn ) or die( "Грешка" );
$query = "select count(*) from Dostyp where potr_ime = '$potr_ime'";
$result = mysql_query( $query );
if(!$result)
{
echo ('Грешка в запитването');
die("Заявката не може да бъде изпълнена");
}
if( $row = mysql_fetch_array($result) && !empty( $row[0] ) )
echo("Това потребителско име вече е заето!");
else
{тука конструкцията вече работи безпроблемно.
Не мога да открия грешката...някой може ли да помогне?
Ами виж...
какво точно ти връща mysql_query() от select заявка.
There are three determined states the cat could be in: Alive, Dead, and Bloody Furious.
There are three determined states the cat could be in: Alive, Dead, and Bloody Furious.
Re: problem
Проблема е в теста ти, при
$query = "select count(*) from Dostyp where potr_ime = '$potr_ime'";
$row[0] винаги ще е има стойност, защото, дори при 0-а записи в базата отговарящи на WHERE клаузата ти, mysql ще върне стойност, била тя и нула.
Защо не ползваш :
$query = "select * from Dostyp where potr_ime = '$potr_ime'";
и след това за тест ползваш :
if(mysql_num_rows($result)>0)
echo("Това потребителско име вече е заето!");
$query = "select count(*) from Dostyp where potr_ime = '$potr_ime'";
$row[0] винаги ще е има стойност, защото, дори при 0-а записи в базата отговарящи на WHERE клаузата ти, mysql ще върне стойност, била тя и нула.
Защо не ползваш :
$query = "select * from Dostyp where potr_ime = '$potr_ime'";
и след това за тест ползваш :
if(mysql_num_rows($result)>0)
echo("Това потребителско име вече е заето!");
Re: problem
Не се получава
<?php
$conn=@mysql_connect( "localhost:3306", "user", "pass" )
or die( "Грешка в конекта с mysql");
$rz = @mysql_select_db( "bazadanni", $conn ) or die( "Грешка" );
$query = "select count(*) from Dostyp where potr_ime = '$potr_ime'";
$result = mysql_query( $query );
if(!$result)
{
die("Заявката не може да бъде изпълнена");
if(mysql_num_rows($result)>0)
echo("Това потребителско име вече е заето!");
}
else
{
if( $potr_ime and $parola and $ime and $prezime and $familia and $email )
{
$conn=@mysql_connect( "localhost:3306", "user", "pass" )
or die( "Грешка в конекта с mysql");
$rz = @mysql_select_db( "bazadanni", $conn ) or die( "Грешка" );
$sql = "insert into dostyp ( potr_ime, parola, ime, prezime, familia, email)
values ( \"$potr_ime\", \"$parola\", \"$ime\", \"$prezime\", \"$familia\", \"$email\" )";
$rs = mysql_query ( $sql, $conn );
if( $rs )
{ echo( "<b>Успешна регистрация! $potr_ime , можете да влезете в системата!</b>
");
echo("<a href=\"index.php\"><b>Обратно към логин страницата</b></a>");
}
}
}
?>
<?php
$conn=@mysql_connect( "localhost:3306", "user", "pass" )
or die( "Грешка в конекта с mysql");
$rz = @mysql_select_db( "bazadanni", $conn ) or die( "Грешка" );
$query = "select count(*) from Dostyp where potr_ime = '$potr_ime'";
$result = mysql_query( $query );
if(!$result)
{
die("Заявката не може да бъде изпълнена");
if(mysql_num_rows($result)>0)
echo("Това потребителско име вече е заето!");
}
else
{
if( $potr_ime and $parola and $ime and $prezime and $familia and $email )
{
$conn=@mysql_connect( "localhost:3306", "user", "pass" )
or die( "Грешка в конекта с mysql");
$rz = @mysql_select_db( "bazadanni", $conn ) or die( "Грешка" );
$sql = "insert into dostyp ( potr_ime, parola, ime, prezime, familia, email)
values ( \"$potr_ime\", \"$parola\", \"$ime\", \"$prezime\", \"$familia\", \"$email\" )";
$rs = mysql_query ( $sql, $conn );
if( $rs )
{ echo( "<b>Успешна регистрация! $potr_ime , можете да влезете в системата!</b>
");
echo("<a href=\"index.php\"><b>Обратно към логин страницата</b></a>");
}
}
}
?>
Забравила си да...
замениш count(*) със *
There are three determined states the cat could be in: Alive, Dead, and Bloody Furious.
There are three determined states the cat could be in: Alive, Dead, and Bloody Furious.
Re: Забравила си да...
Отново не работи. При опит за въвеждане на нов запис дава грешка в този код:
$query = "select * from Dostyp where potr_ime = '$potr_ime'";
$result = mysql_query( $query );
if(!$result)
{
die("Заявката не може да бъде изпълнена");
$query = "select * from Dostyp where potr_ime = '$potr_ime'";
$result = mysql_query( $query );
if(!$result)
{
die("Заявката не може да бъде изпълнена");
Благодаря на всички за съдействието
Абе открихме проблема. Кода си работи. Счупена била Mysql таблицата... направих я наново и всичко тръгна. Кой би се сетил... Благодаря още веднъж на всички за съдействието. Скоро пак ще се "видим" 