2015-12-24 3 views
0

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

Когда print_r($sql->getNumRows()) - это дает мне правильный счет. Но я хочу добавить идентификаторы в массив и когда я print_r(count($all)) - счет больше.

Каков правильный способ сделать это?

Мой код:

$sql->query("SELECT id FROM offers ORDER BY id ASC"); 
if ($row=$sql->getNumRows()) { 
    for ($i=0; $i< $sql->getNumRows(); $i++) { 
     $all[]= $sql->getRow($i); 
    } 

    print_r($sql->getNumRows()); //this prints correct number 
    print_r(count($all)); //this prints bigger count 
+0

Вы уверены, что '$ all' был пуст перед этим циклом? – Barmar

ответ

0

Любая причина вы не используете MySQL Improved Extension (http://php.net/manual/en/book.mysqli.php)?

Я считаю, что способ, которым вы пытаетесь это сделать, устарел. Вы можете попробовать что-то вроде этого:

<?php 
$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 

/* check connection */ 
if ($mysqli->connect_errno) { 
    printf("Connect failed: %s\n", $mysqli->connect_error); 
    exit(); 
} 

$query = "SELECT id FROM offers ORDER BY id ASC"; 

$allRows = array(); 
if ($result = $mysqli->query($query)) { 

    /* fetch associative array */ 
    while ($row = $result->fetch_assoc()) { 
     //Store the row in an array for later use 
     $allRows[] = $row; 
    } 

    /* free result set */ 
    $result->free(); 
} 

/* close connection */ 
$mysqli->close(); 

print_r(count($allRows)); 
print_r($allRows); 

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