Как вывести данные с бд с помощью foreach ?

Статус
В этой теме нельзя размещать новые ответы.

USA

Новичок
Как вывести данных с базы данных phpmyadmin через foreach.
Или лучше использовать while ? все примеры в нете с помощью while. Через while все нормально, а через foreach не выходит (
PHP:
$sql = "select * from  articles" or die(mysql_error()); 
$rs = mysql_query($sql);   
$row=mysql_fetch_array($rs);   
foreach($row as $key){ 
echo $key['title'];
}
выдает бред какой то 22������
 

Andir

Новичок
у тебя проблема с кодировкой, кодировка базы и исходного файла должна совпадать. установи кодировку ввода/вывода
PHP:
mysql_query("SET NAMES 'utf8' ");
 

USA

Новичок
у тебя проблема с кодировкой, кодировка базы и исходного файла должна совпадать. установи кодировку ввода/вывода
PHP:
mysql_query("SET NAMES 'utf8' ");
PHP:
<?php
$localhost = "localhost";
$dbuser = "root";
$dbname = "new_test_db";
$dbpassword = "";

$connect = mysql_connect($localhost, $dbuser, $dbpassword) or die(mysql_error());

mysql_set_charset('utf8');
mysql_select_db($dbname, $connect) or die(mysql_error());
?>
 

Фанат

oncle terrible
Команда форума
не нужно ничего показывать :)
Я, даже решил сначала, что ты его просишь код с foreach показать, и зашел написать, какой там код, а потом смотрю - он и так тут во всей красе, уже написан.
Классика ж.
 

Breeze

goshogun
Команда форума
Партнер клуба
не нужно ничего показывать :)
Я, даже решил сначала, что ты его просишь код с foreach показать, и зашел написать, какой там код, а потом смотрю - он и так тут во всей красе, уже написан.
Классика ж.
я это вижу, конечно =) но глядишь в пределах страницы товарищ сам что-нибудь увидел бы
 

Breeze

goshogun
Команда форума
Партнер клуба
смотри внутрь скобок while() и foreach() и увидь разницу
 

hell0w0rd

Продвинутый новичок
http://nkt.github.io/flame/ возьми нормальную библиотеку.
PHP:
$db = new \Flame\Connection('mysql:dbname=database_name', 'user', 'password');
foreach($db->query('select * from articles')->fetchAll() as $article) {
    echo $article['title'] . '<br/>';
}
 

Breeze

goshogun
Команда форума
Партнер клуба
в общем и целом, while -- это цикл общего назначения
foreach работает только с массивами и объектами, с ним не получится использовать mysql_fetch_array

если хочешь использовать foreach совместно с mysql_fetch_array, то сначала пользуйся while.

PHP:
$result_list = array();
while($row = mysql_fetch_array($rs)) {
  $result_list[] = $row;
}

foreach($result_list as $row) {
  // actions
}
либо приводи результат запроса к объекту Iterator, но тебе судя по всему, это рано
 

hell0w0rd

Продвинутый новичок
Breeze, пусть в код влезет, посмотрит что да как. Ну и везде (или почти везде), используют pdo, это очень легкая обертка над pdo, так что в любом случае полезно.
 

USA

Новичок
в общем и целом, while -- это цикл общего назначения
foreach работает только с массивами и объектами, с ним не получится использовать mysql_fetch_array

если хочешь использовать foreach совместно с mysql_fetch_array, то сначала пользуйся while.

PHP:
$result_list = array();
while($row = mysql_fetch_array($rs)) {
  $result_list[] = $row;
}

foreach($result_list as $row) {
  // actions
}
либо приводи результат запроса к объекту Iterator, но тебе судя по всему, это рано
Месяц назад вроде делал без while. и все выводилось через foreach... Спасибо за помощь
 

Breeze

goshogun
Команда форума
Партнер клуба
Breeze, пусть в код влезет, посмотрит что да как. Ну и везде (или почти везде), используют pdo, это очень легкая обертка над pdo, так что в любом случае полезно.
смотри его следующий ответ. он не понимает почему именно так работает, а не иначе.
а результатом этого будут заклинания с шаманством в чистом виде при проблемах.

pdo -- это сложная сущность, гораздо сложнее набора mysql_* с которым многие до сих пор возятся.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху