2013-11-13 3 views
1

У меня есть запрос Mysql, что дает следующий результат, используя while($row = mysql_fetch_array($res))PHP Создание массива из выборки массиву

x | 12432

y | 232432

z | 323423

Я хочу взять каждую колонку и поместите его в новый массив, чтобы экспортировать их в таблицу, которая будет выглядеть как

x | y | z

12432 | 232432 | 323423

Если я получать тот же самый запрос более чем один раз, вторая строка не отображается.

Не могли бы вы помочь?

+0

Вы должны попытаться использовать mysqli или PDO для соединений с базой данных. – Fyntasia

+2

[** Пожалуйста, не используйте 'mysql_ *' функции в новом коде **) (http://bit.ly/phpmsql). Они больше не поддерживаются [и официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). См. [** красное поле **] (http://j.mp/Te9zIL)? Узнайте о [* подготовленных операторах *] (http://j.mp/T9hLWi) и используйте [PDO] (http://php.net/pdo) или [MySQLi] (http://php.net/ mysqli) - [эта статья] (http://j.mp/QEx8IB) поможет вам решить, какой из них. Если вы выберете PDO, [здесь хороший учебник] (http://j.mp/PoWehJ). – h2ooooooo

ответ

1

Редактировать: Перейти к mysqli (или PDO), как только сможете! Многих причин можно найти в поисковых системах, поэтому я оставлю это вам.


Вы можете использовать вложенный цикл, чтобы сделать это:

$array = array(); 

while($row = mysql_fetch_array($res)){ 
    foreach($res as $key=>$value){ 
     $array[$key][] = $value; 
    } 
} 

Первый раунд время даст $ массиву ключевые имена и их первое значение, следующий litterations через цикл добавит только значения

1

Это код, который работал для меня.

while($row = mysql_fetch_array($res)){ 

    $clients[] = $row[0]; 

    $stats[] = $row[1]; 

} 

foreach ($clients as $client) 
{ 
    echo "<td>$client</td>"; 
} 

echo "</tr><tr>"; 

foreach ($stats as $stat) 
{ 
    echo "<td>$stat</td>"; 
} 
+0

Однако есть проблема. Он не отображает первые записи в каждом массиве. –

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