2013-07-27 4 views
-1

я есть ниже таблицы именно с этими 3 значениями в БД MySQLФункция array_pop оленья кожа укорачивает массив

+-----+-------+ 
| bID | book | 
+-----+-------+ 
| 9 | sajid | 
| 10 | Salim | 
| 11 | Salim | 
+-----+-------+ 

я использовать этот PHP код для получения

  $con=mysql_connect("localhost","root","","library"); 
      mysql_select_db("library",$con); 
      $sqlb = "SELECT * FROM books"; 
      $queryb = mysql_query($sqlb); 
      while ($resultsb[] = mysql_fetch_object ($queryb)); 
      array_pop ($resultsb); 
      print_r($resultsb); 

и выводит этот массив

Array ( 
      [0] => stdClass Object ([bID] => 9 [book] => sajid) 
      [1] => stdClass Object ([bID] => 10 [book] => Salim) 
     [2] => stdClass Object ([bID] => 11 [book] => Salim) 
) 

в соответствии с руководством по php «array_pop() всплывает и возвращает последнее значение массива, сокращая массив на единицу элемент «. Мой вопрос заключается в том, что он не сокращает мой массив на 1 элемент, хотя мне не нужно сокращать его массив, который он дает мне, служит моей цели, но это противоречие, что руководство по php говорит, что Array_pop сокращает массив на один, почему это не происходит здесь

рассматривает

AP

+1

до того, как array_pop ваш '$ resultsb' должен был иметь 4 объекта stdClass – DevZer0

+0

Что вы пытаетесь достичь? Еще один момент: не используйте 'mysql' функции, они будут устаревать в ближайшее время. Замените их функциями 'mysqli' или PDO. – Pieter

+0

Попробуйте 'print_r' * before * you pop ... – deceze

ответ

2

Когда вы дойдете до конца результирующего набора выборки функция возвращает FALSE, и вы храните его в массиве. Функция array_pop удаляет ее из массива, оставляя только элементы, которые были извлечены из базы данных.

+0

могу ли я напечатать False любой код PLZ –

+0

Добавить вызов print_r перед вызовом array_pop. – Joni

+0

Нет, но когда я удаляю array_pop, в поле выбора есть значение в конце. Уведомление: попытка получить свойство не объекта –