Я пытаюсь сделать несколько простых выберите в одном сценарии.
Я вижу, пытаюсь ли я прочитать мой набор результатов какое-то время, но проблем нет, но если я пытаюсь использовать foreach, я просто читаю значение 1 o 2, все неправильно …
Зачем?
$sql = " select * from tutorials_tbl";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
printf("ID: %s Name: %s", $row[0], $row[1]);
}$sql = " select * from tutorials_tbl";
$result = mysql_query($sql);
foreach($rows= mysql_fetch_array($result, MYSQL_BOTH) as $row) {
printf("ID: %s Name: %s", $row[0], $row[1]);
}
—
* OUTPUT WHILE*
ID: 0 Name: title0
ID: 1 Name: title1
ЕСС ….
*OUTPUT FOREACH*
ID: 1 Name:
ID: 1 Name:
ID: t Name: i
ID: t Name: i
Причина, по которой вы получаете только одну строку с foreach, заключается в том, что функция mysql_fetch_array () возвращает только одну запись.
В цикле while условие, где вызывается функция, переоценивается в каждом цикле. Это потрясающе.
Работа с foreach довольно странная, и я думаю, что mysql_fetch_array () считывает одну запись в виде массива в переменную $ row, а затем выполняет итерацию по каждой COLUMN в записи … другими словами, $ row это всего одна строка, а $ row это одно значение в строке.
Причина, по которой вы видите только одну или две буквы в выводе, заключается в том, что $ row [0] в строке просто дает вам 0-ю букву в строке.
Единственный способ, которым будет работать foreach, — это функция «извлечь все», которая выдает массив массивов. Но вы должны создать это сами … в основном это будет цикл while 🙂
Если вы используете PDO в соответствии с рекомендациями, он поставляется с возможностями fetchAll.
$sql = " select * from tutorials_tbl";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
printf("ID: %s Name: %s", $row['Attribute-1'], $row['Attribute-2']);
}
foreach($rows= mysql_fetch_array($result, MYSQL_BOTH) as $row)
{
echo $row['Attribute-1'];
echo $row['Attribute-2'];
}
Этот вопрос уже задавался: Используйте mysql_fetch_array () с foreach () вместо while ()
если вы хотите, вы также можете обратиться отсюда. : D
Попробуй вот так
$sql = " select * from tutorials_tbl";
$result = mysql_query($sql);
$rows= mysql_fetch_array($result, MYSQL_BOTH);
foreach($rows as $row){
echo 'ID '. $row->id.' Name '.$row->name;
}