2015-02-21 2 views
0

Мне нужно найти почтовый индекс в моей базе данных, моя таблица называется «test», в моей базе данных есть только одна таблица с одним столбцом и одной строкой, столбец названные «коды», и есть единственная строка с INT 63000, у меня есть форма на моем веб-сайте, где клиент вводит код, и он называется .php-файлом, который проверяет, отсутствует ли значение или присутствует в базе данных, i не знаю PHP, так что трудно для меня ... :(И мой код не работает :(SELECT COUNT * SQL PHP не работает

РЕШИТЬ: эТО РАБОЧИЕ кОД:

<?php session_start(); ?> 
<?php 

if($_POST['code-postal'] === '') { 
     $hasError = true; 
} else { 
     $variable = $_POST['code-postal']; 
     $code = intval($variable); 
} 

    mysql_connect('xxxxxxxxx', 'xxxxxxxxxxxx', 'xxxxxxxxxxxx') 
or die("I cannot connect to the database because: " . mysql_error()); 

mysql_select_db('xxxxxxxxxx'); 

$code = mysql_real_escape_string($code); 
$sql = "SELECT COUNT(*) AS total_count FROM test WHERE codes='$code'"; 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

$data = mysql_fetch_assoc($req); 

if($data['total_count'] == 1) { 
    $verif = true; 
} 
else { 
    $verif = false; 
} 
// on ferme la connexion à mysql 
mysql_close(); 
?> 
+0

Ваш запрос 'SELECT COUNT (*) FROM test WHERE code = '$ code' является совершенным. Какова ошибка, с которой вы сталкиваетесь? –

+0

'$ row' - это паразитная переменная, вот почему. –

+0

Нет ошибки, пустая страница, я пытаюсь сделать эхо, но она не появляется ... Что мне делать: /? – Playzare

ответ

0
$sql = "SELECT COUNT(*) AS total_count FROM test WHERE codes='$code'"; 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

$data = mysql_fetch_assoc($req); 

if($data['total_count'] == 1) { 
    $verif = true; 
} 
else { 
    $verif = false; 
} 

Вот рабочий код.

mysql_query возвращенный результат комплект. Для извлечения данных вам понадобится функция mysql_fetch_assoc.

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

+0

Спасибо! Но переменная кажется ложной в каждый момент, даже если я тестирую свою строку, которая находится в базе данных :(Что мне нужно делать? Возможно ли, что соединение с базой данных плохо?:/ – Playzare

+0

Должно появиться некоторая ошибка, если проблема связана с вашим соединением, поскольку вы уже используете функцию 'die'. Попытайтесь увидеть, какой запрос действительно запускается с помощью инструкции' echo $ sql; 'сразу после ее инициализации. –

+0

Это запрос эхо-шоу: SELECT COUNT (*) AS total_count FROM test WHERE codes = '' – Playzare