2014-02-05 4 views
0

Я хочу показать сообщение об ошибке, если insert уже существует. Я сделал name уникальным в базе данных, и если я ввожу то же значение, оно не вставляется. Так же, как я хотел. Вот мой код:, чтобы сообщить пользователю, что значение уже существует

$query = "INSERT INTO register(name) VALUES('$foo')"; 
mysql_query($query) or die('An Error occurred' . mysql_error()); 

Теперь я хочу повторить сообщение, чтобы пользователь мог знать, что значение он вошел уже присутствует в базе данных и не будет вставлено. Кто угодно?

+2

mysql_query свой устаревший, попробуйте использовать [mysqli] (http://php.net/manual/en/book.mysqli.php) вместо этого. И может быть [affected_rows] (http://www.php.net/manual/en/mysqli-stmt.affected-rows.php) то, что вы хотите. – Melon

ответ

0

Полагаю, вы собираете $ foo из формы?

то, что я хотел бы сделать, - это sql-запрос регистра таблицы, который собирает поле имени, тогда, когда вы собираете имя, введенное в форме и его опубликованное, вы можете запустить условие if в поле имени, которое вы уже собрали, используя sql и если есть имя = к имени, которое они вводят в поле, они могут получить сообщение и выйти до ввода sql в таблицу регистров.

+0

любой код сампеля? – BE57

+0

см. Другой ответ выше –

-1
\\this first part collects name information from your table. 
    $name="SELECT name FROM register"; 
$name_query = mysqli_query($db_conx, $name); 
$numrows = mysqli_num_rows($name_query); 

if($numrows < 1){ 
    echo "cannot find user"; 
    header ("location: index.php"); 
} 
while ($row = mysqli_fetch_array($name_query, MYSQLI_ASSOC)){ 
$name = $row["name"]; 
    } 

    \\ this part gets the name from your form 
    if (isset($_POST['class']) && ($_POST['class'] !='')){ 
    $foo = $_POST['foo']; 

    \\this part checks to see if the 2 values are equal 
    if ($name == $foo){ 
    echo "This name has already been used try again"; 

    \\this part then adds the name if its not already in the database 
    }else{ 
    $query = "INSERT INTO register(name) VALUES('$foo')"; 
    mysql_query($query) or die('An Error occurred' . mysql_error()); 
    } 
    } 

// то все, что вам нужно сделать, это создать форму, чтобы отправить Foo или имя, чтобы он мог быть собран и прошел через querys.

0

Самый простой способ:

$res = mysql_query($query): 
if ($res) 
    echo 'Insertion ok'; 
else 
    echo 'error: name already exists'; 

Лучший способ: сделать первый SELECT запрос на, чтобы увидеть, если имя существует или нет.

Примечание: вы должны думать о переходе от mysql_* к mysqli_* или PDO

0

Попробуйте это:

$query = "INSERT INTO register(name) VALUES('$name')"; 
$user = mysql_query($query): 
    if ($user) 
     echo 'User Register'; 
    else 
     echo 'User Already Exist'; 
0

Согласно комментарию дыни, вы должны использовать mysqli.

// Create your connection 
$mysqli = new mysqli($host, $user, $pass, $dbname); 

// Do your query 
$mysqli->query("INSERT INTO register(name) VALUES('$foo')"); 
if($mysqli->affected_rows == 0) { 
    // Your chosen method of alerting the user goes here 
} 
Смежные вопросы