2012-02-27 5 views
0

Вот что я пытаюсь сделать: когда пользователь добавляет контакт в свой список, номер этого контакта запускается с номерами в базе данных и дает обратную связь, если пользователь уже в базе данных или нет. Прямо сейчас я всегда возвращаюсь «Пользователь в базе данных», хотя он и не является. Опять же, я не так хорошо знаком с php. Я немного снова изменил код, теперь он не работает на всех, потому что он не любит частьСравнение значения строки базы данных с новой строкой value

$number = ($_GET["number"] from $DB_Table); 

Полный код

<?php 
$DB_HostName = "localhost"; 
$DB_Name = "db"; 
$DB_User = "user"; 
$DB_Pass = "pw"; 
$DB_Table = "contacts"; 

$number = ($_GET["number"] from $DB_Table); 

$fnumber = ($_GET["fnumber"]); 

if ($number == $fnumber) { 
    echo "This user is already in database"; 
} else { 
echo "This user isn't in the database"; 
} 

$con = mysql_connect($DB_HostName,$DB_User,$DB_Pass) or die (mysql_error()); 
mysql_select_db($DB_Name,$con) or die(mysql_error()); 

mysql_close($con); 
?> 
+0

Не думаете ли вы, что вы выполняете неправильный запрос, который также перед подключением к базе данных? – Astha

ответ

1

На самом деле я не вижу, как вы выполняете запрос базы данных. Вы могли бы сделать что-то вроде этого:

<?php 

    $DB_HostName = "localhost"; 
    $DB_Name = "db"; 
    $DB_User = "user"; 
    $DB_Pass = "pw"; 
    $DB_Table = "contacts"; 

    $con = mysql_connect($DB_HostName,$DB_User,$DB_Pass) or die (mysql_error()); 
    mysql_select_db($DB_Name,$con) or die(mysql_error()); 

    $fnumber = mysql_real_escape_string($_GET["fnumber"]); 

    $result = mysql_query("SELECT * FROM $DB_Table WHERE Something = '$fnumber'", $con); 

    if ($result) { 
     // Check the number of rows in the result set 
     if (mysql_num_rows($result) > 0) { 
      echo "This user is already in database"; 
     } 

     else echo "This user isn't in the database"; 
    } 

    mysql_close($con); 

?> 
+0

Большое спасибо за код, но странные вещи, это приводит к следующей ошибке. Предупреждение: mysql_real_escape_string() [function.mysql-real-escape-string]: Ссылка на сервер не может быть установлена ​​в/myserver/usercheck.php в строке 9 - строка 9 - $ fnumber = mysql_real_escape_string ($ _ GET ["fnumber"]); Без него соединение работает, но побеждает целую цель. – Blade

+0

Прошу прощения, это была ошибка. Вам нужно будет переместить эту строку ниже, где инициализируется соединение с базой данных. Я исправил это в коде выше. – Andy0708

+0

Работает как шарм, большое спасибо :) – Blade

1

Это не правильный код PHP: $number = ($_GET["number"] from $DB_Table);

$_GET["number"] представляет значение параметра «number», которое вы найдете в URL-адресе вашей страницы.

Пример: http://example.com/index.php?number=7 так $_GET["number"] является 7.

В коде $DB_Table это просто строка («contact„) и“from» не подходит там, используя синтаксис PHP.

mysql_select_db($DB_Name,$con) or die(mysql_error()); 

действителен PHP, но вы ничего не делаете с тем, что получаете из базы данных. Я предлагаю вам хотя бы взглянуть на этот учебник php mysql select

+0

Спасибо, я прочитаю его и попытаюсь его использовать. – Blade

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