Intereting Posts
PHP: сеанс не сохраняется перед перенаправлением заголовка Как получить имя вызывающей функции / метода в PHP? Проверьте, выходит ли значение в массиве (Laravel или Php) Как удалить данные из базы данных с помощью переключателя в php? Каковы альтернативы архитектуре MVC для веб-разработки? Сравнение пользовательского IP-файла с содержимым файла .txt PHP заполняет данные из базы данных при выборе района Как хранить 60 булевых элементов в базе данных MySQL? Изображение, созданное с помощью blob, содержит только числа и запятые как преобразовать объект в строку в php imagecreatefromstring (): данные не находятся в распознанном формате в Как игнорировать свойство null с помощью JsonSerializable :: jsonSerialize ()? PHP preg_match_all + str_replace «Существует ошибка» при нажатии на некоторые страницы администрирования Silverstripe Попытка извлечь 5 символов из столбца при добавлении записи mysql через php

Результаты запроса mysqli для отображения всех строк

У меня есть следующий код:

include $_SERVER['DOCUMENT_ROOT'].'/include/conn.php'; $query = "SELECT title FROM news_event"; $result = $mysqli->query($query); $row = $result->fetch_array(MYSQLI_BOTH); $row_cnt = $result->num_rows; $result->free(); $mysqli->close(); 

Это нормально, если есть только один результат, поскольку я могу просто откликнуться на $ row ['title'], но если есть много результатов, как мне получить это, чтобы прокрутить и распечатать каждую строку?

Я уверен, что это действительно просто, но я просто не уверен, что мне нужно искать в google.

Я ищу эквивалент mysqli:

 while($row = mysql_fetch_array($result)) { echo $row['FirstName'] . " " . $row['LastName']; echo "<br />"; } 

просто замените его mysqli_fetch_array или mysqli_result::fetch_array 🙂

 while($row = $result->fetch_array()) { echo $row['FirstName'] . " " . $row['LastName']; echo "<br />"; } 

Почти все функции mysql_* имеют соответствующую функцию mysqli_* .

Использование:

 while ($row = $result->fetch_array(MYSQLI_BOTH)) { // Look inside $row here, do what you want with it. } 

Посмотрите на примеры ассоциативных массивов (также должны соответствовать версии fetch_array ()):

http://php.net/manual/en/mysqli-result.fetch-assoc.php

Простое решение mysqli:

 $db = new mysqli('localhost','user','password','database'); $resource = $db->query('SELECT * FROM table WHERE 1'); while ( $rows = $resource->fetch_assoc() ) { print_r($rows);//echo "{$row['field']}"; } $resource->free(); $db->close(); 

С обработкой ошибок: если есть фатальная ошибка, скрипт завершится с сообщением об ошибке.

 // ini_set('display_errors',1); // Uncomment to show errors to the end user. if ( $db->connect_errno ) die("Database Connection Failed: ".$db->connect_error); $db = new mysqli('localhost','user','password','database'); $resource = $db->query('SELECT field FROM table WHERE 1'); if ( !$resource ) die('Database Error: '.$db->error); while ( $row = $resource->fetch_assoc() ) { echo "{$row['field']}"; } $resource->free(); $db->close(); 

Использование итераторов: поддержка была добавлена ​​с помощью PHP 5.4

 $db = new mysqli('localhost','user','password','database'); foreach ( $db->query('SELECT * FROM table') as $row ) { print_r($row);//echo "{$row['field']}"; } $db->close(); 

Получить одну запись: этот код не требует цикла.

 $db = new mysqli('localhost','user','password','database'); $resource = $db->query('SELECT field FROM table'); $row = $resource->fetch_assoc(); echo "{$row['field']}"; $resource->free(); $db->close();