2013-08-08 5 views
0

Я создал 10-значное число, добавив его в базу данных после покупки.Проверьте, есть ли запись в базе данных

Теперь я хочу, чтобы страница php предоставила пользователям поле ввода, попросит ввести 10-значное число и нажмите «Отправить». После того, как вы нажмете кнопку «Отправить», он должен вернуться, если контакт используется или не использовался. (Используется, если его нет в наличии - Не используется, если его в таблице)

Я получил следующий код:

<?php 
require_once 'db.php'; 
function validated_pin($pin) 
{ 

    $pin = mysql_real_escape_string($pin); // SECURITY! 
    $result = mysql_query("SELECT pins FROM pins WHERE pin='$pin' LIMIT 1"); 
    if (mysql_fetch_row($result)) { 
    return 'This pin has already been used'; 
    } else { 
    return 'This pin is available for use'; 
} 
} 

echo '<html><center> 
<form action="' . $_SERVER['SCRIPT_NAME'] . '" method="post"> 
<table style="border:0px solid black;"> 
<tr> 
<td>PIN*:</td><td><input type="text" name="pin" value="" class="bginput"/></td> 
</tr> 
<tr> 
<td></td><td><input type="submit" id ="submit" name="submit1" value="Check Pin>>" class="button"></td> 
</tr> 
</table>';   
       echo validated_pin($pin); 
echo '</center></html>'; 
?> 

И PhpMyAdmin выглядит следующим образом: http://gyazo.com/67c3df7171c83c677cb221c04d644ed7.png

Он расположен в _donation и имя таблицы булавка

Я не знаю, что происходит пробовал искать везде

текущий код будет вернуть эту ошибку

Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in /home/website/public_html/directory/example.php on line 8 
+0

Эта ошибка обычно возникает, когда возвращается логическое значение (false), то есть запрос ur не смог получить данные. – kevinm

ответ

0

Ваш запрос это-

$result = mysql_query("SELECT pins FROM pins WHERE pin='$pin' LIMIT 1"); 

не должна быть

$result = mysql_query("SELECT pin FROM pins WHERE pin='$pin' LIMIT 1"); 

pin это имя столбца правильно? не pins

if (mysql_fetch_row($result)) { 

    if(mysql_num_rows($result)>0) 
    return 'This pin has already been used'; 
    else 
    return 'This pin is available for use'; 

}

+0

Использование вашего 2-го кода избаловано от ошибки, но оно по-прежнему автоматически отображает «Этот контакт доступен для использования» без ввода какого-либо значения, и даже если я делаю это, всегда возвращается «Этот контакт доступен для использования» – Swaly

+0

@ Swaly- мог бы попробовать? – kevinm

+0

Просто попробовал, он не показывает «Этот штифт доступен для использования» больше, но независимо от того, что я вхожу, ничего не отображается – Swaly

0

Ваш запрос не в состоянии получить данные, в результате чего false вернулся.

Во-первых - вы должны поймать это значение false и не принимать $result имеет данные.

Во-вторых - var_dump() запрос вы работаете, запустите, что в PhpMyAdmin

+0

Использовал var_dump() и получил это: resource (4) типа (результат mysql) – Swaly

0

Это, казалось, решил его:

$pin = $_POST["pin"]; 

function validated_pin($pin) 
{ 

    $pin = mysql_real_escape_string($pin); // SECURITY! 
    $result = mysql_query("SELECT pin FROM pins WHERE pin='$pin' LIMIT 1"); 

    if(mysql_num_rows($result) == 0) { 
     return 'This pin has already been used'; 
      } else { 
     return 'This pin is available for use'; 
      } 
} 

Тем не менее встает вопрос о его говорить «Уже были использованы», прежде чем я исполняю любой код.

Смежные вопросы