2013-05-15 3 views
1

Я пытаюсь подсчитать записи в базе данных на основе 2 основных критериев. Он возвращает пустой результат, хотя есть результаты, которые можно найти. Кто-нибудь знает, что я делаю неправильно здесь? Я пробовал так много разных способов, и все они не приносят результата. (Если я ввожу запрос непосредственно в PHPMyAdmin возвращает результат.)попытка подсчета записей в базе данных

$sql = "SELECT count(*) as total_count from orderOption3Detail WHERE orderDate='$orderDate' AND studentID='$studentID'"; 
$numericalResult = mysql_query($sql, $con); 
$row = mysql_fetch_object($numericalResult); 
$totalOrders1 = $row->total_count; 
echo "My orders:" . $totalOrders1; 
+2

** предупреждение ** код может быть уязвимы для SQL-инъекций ! –

+4

Включить правильное сообщение об ошибках и увидеть синтаксическую ошибку, вызванную отсутствием '=' между '$ totalOrders' и' $ row-> total_count'. – Wrikken

+0

Исправлено это еще одна опечатка. По-прежнему не получается. – kayleegirl

ответ

0

Как и другие заявили, убедитесь, что вы дезинфицировать переменные, прежде чем они идут в запросе.

$sql = "SELECT * FROM orderOption3Detail WHERE orderDate = '" . $orderDate . "' AND studentID = '" . $studentID . "'"; 

$sql_request_data = mysql_query($sql) or die(mysql_error()); 
$sql_request_data_count = mysql_num_rows($sql_request_data); 

echo "Number of rows found: " . $sql_request_data_count; 

Это все, что вам нужно.

0

Edited: обеспечение полный код исправлен:

$con=mysqli_connect($db_host,$db_user,$db_pass,$db_name); // Check connection 
if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } //global option 1 
$sql = "SELECT count(*) as total_count from orderOption3Detail WHERE orderDate='$orderDate' AND studentID='$studentID'"; 
//echo $sql; 
$numericalResult = $con->query($sql); 
$row = mysqli_fetch_object($numericalResult); 
echo $row->total_count; //echo (int) $row->total_count; 

Пожалуйста, проверьте это и дайте мне знать. Удачи! ----- Конец редактирования ----

Вы проверили назначая значения непосредственно в качестве теста в вашем SQL строки, как:

$sql = "SELECT count(*) as total_count from orderOption3Detail WHERE orderDate='05/23/2012' AND studentID='17'"; 

Кроме того, вы проверили, если формат даты правилен , считывая переменную $ orderdate и проверяя ее в PHPMyAdmin?

Вы прочитали $ sql со значениями, вставленными и протестированными в PHPMyAdmin, и сработали?

Кроме того, проверьте соединение, чтобы убедиться в отсутствии проблем.

Еще одна вещь, извините. Кажется, вы используете неправильный синтаксис в своем операторе mysql_query. Этот способ работает для mysqli_query, и параметры будут инвертированы. Попробуйте только:

$numericalResult = mysql_query($sql); 

условии, что вы сделали выбор соединения и базы данных ранее, как в:

$connection=mysql_connect($db_host, $db_username, $db_password); 
if (!$connection) 
      { 
      $result=FALSE; 
      die('Error connecting to database: ' . mysql_error()); 
      } 

    // Selects database 
    mysql_select_db($db_database, $connection); 

С наилучшими пожеланиями,

+0

Соединение с базой данных хорошее. Он проверяется дальше. Я бросил SQL-запрос в phpmyadmin и вернул правильный результат ... просто возвращает нуль здесь. Что касается синтаксической ошибки ($ numbericalResult = mysql_query ($ sql);), возможно, это имеет какое-то отношение к моей проблеме, потому что когда я меняю ее на нее, она прерывает код. Кажется, хочет, чтобы информация о подключении, $ con, была там ... Вот полная треска – kayleegirl

+0

Полный код: $ con = mysqli_connect ($ db_host, $ db_user, $ db_pass, $ db_name); // Проверьте соединение if (mysqli_connect_errno()) { echo "Не удалось подключиться к MySQL:".mysqli_connect_error(); } // global option 1 $ sql = "SELECT count (*) as total_count from orderOption3Detail WHERE orderDate = '$ orderDate' AND studentID = '$ studentID'"; // echo $ sql; $ numbericalResult = mysql_query ($ sql, $ con); $ row = mysql_fetch_object ($ numericalResult); echo $ row-> total_count; // echo (int) $ row-> total_count; – kayleegirl

+0

А, Это простая ошибка. Вы используете соединение с помощью mysqli, поэтому вы должны делать все дальнейшие инструкции с помощью mysqli, например, mysqli_query и т. Д. Теперь я мобилен, но позже буду исправлять ваш полный код. Ура! –

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