2016-12-26 3 views
0

С моим сайтом я показываю разные продукты во множестве разных параметров, чтобы гарантировать правильность количества результатов. Я хочу, чтобы их эхо их с PHP. До сих пор я пытался повторять их так, как я знаю, и это не сработало.Повторение результатов запроса SELECT COUNT (*)

Код на странице, на которой я хочу включить echo, содержит требование к моим функциональным файлам вверху. Я пробовал:

<?php 
//Call the count_stock() function 
$result_count = count_stock(); 
?> 
<p>Showing 1-9 of <?php echo $result_count['COUNT(*)']; ?> results.</p> 
<p>Showing 1-9 of <?php echo $result_count[0]; ?> results.</p> 
<p>Showing 1-9 of <?php print_r($result_count[0]); ?> results.</p> 

Моя функция для выполнения запроса является:

//create a function to count get_stock 
function count_stock() { 
    global $conn; 
    //query the database to count the data entries in the stock table 
    $sql = 'SELECT COUNT(*) FROM stock'; 
    //use a prepared statement to enhance security 
    $statement = $conn->prepare($sql); 
    $statement->execute(); 
    $result_count = $statement->fetchAll(); 
    $statement->closeCursor(); 
    return $result_count; 
} 
+0

Что возвращает var_dump ($ result_count)? –

ответ

0

Изменить функцию:

function count_stock() { 
     global $conn; 
     //query the database to count the data entries in the stock table 
     $sql = 'SELECT COUNT(*) as tot FROM stock'; 
     //use a prepared statement to enhance security 
     $statement = $conn->prepare($sql); 
     $statement->execute(); 
     $result_count = $statement->fetch(); 
     $statement->closeCursor(); 
     return $result_count['tot']; 
    } 
0

Изменение от

//create a function to count get_stock 
function count_stock() { 
    global $conn; 
    //query the database to count the data entries in the stock table 
    $sql = 'SELECT COUNT(*) FROM stock'; 
    //use a prepared statement to enhance security 
    $statement = $conn->prepare($sql); 
    $statement->execute(); 
    $result_count = $statement->fetchAll(); 
    $statement->closeCursor(); 
    return $result_count; 
} 

в

//create a function to count get_stock 
function count_stock() { 
    global $conn; 
    //query the database to count the data entries in the stock table 
    $sql = 'SELECT COUNT(*) as total_result FROM stock'; 
    //use a prepared statement to enhance security 
    $statement = $conn->prepare($sql); 
    $statement->execute(); 
    $result = $statement->get_result(); 
    $row = $result->fetch_assoc(); 
    $statement->closeCursor(); 
    return $row['total_result']; 
} 

А также изменится с

<?php 
//Call the count_stock() function 
$result_count = count_stock(); 
?> 
<p>Showing 1-9 of <?php echo $result_count['COUNT(*)']; ?> results.</p> 
<p>Showing 1-9 of <?php echo $result_count[0]; ?> results.</p> 
<p>Showing 1-9 of <?php print_r($result_count[0]); ?> results.</p> 

в

<?php 
//Call the count_stock() function 
$result_count = count_stock(); 
?> 
<p>Showing 1-9 of <?php echo $result_count; ?> results.</p> 
0

Попробуйте

$sql = "SELECT count(*) FROM `stock"; 
$result = $con->prepare($sql); 
$result->execute(); 
$number_of_rows = $result->fetchColumn(); 

Приведенный выше пример кода использует подготовленное заявление, которое во многих случаях вероятно, не нужно для целей е подсчета строк, так что:

$nRows = $pdo->query('select count(*) from blah')->fetchColumn(); 
echo $nRows; 

Ссылка: http://php.net/manual/en/pdostatement.rowcount.php

Примечание: ПДО имеет PDOStatement :: ROWCOUNT(), который по-видимому, не работает в MySql. Какая боль