Ответ 1
$query = mysql_query("SELECT * FROM table WHERE uid = '1' ORDER BY id DESC");
$results = array();
while($line = mysql_fetch_array($query, MYSQL_ASSOC)){
$results[] = $line;
}
У меня есть таблица mysql, которая выглядит так:
id | uid | title | description | parent
1 | 1 | Portraits | desc. | photostream
2 | 1 | Abstract | descr. | photostream
и я пытаюсь построить многомерный массив, который будет выглядеть следующим образом:
Array
(
[0]
[id] => 1
[uid] => 1
[title] => Portraits
[description] => desc.
[parent] => photostream
[1]
[id] => 2
[uid] => 1
[title] => Abstract
[description] => descr.
[parent] => photostream
)
Я использую запрос select:
$query = mysql_query(
"SELECT * FROM `table` WHERE `uid`='1' ORDER BY `id` DESC");
Кто-нибудь знает, как это сделать? Благодаря, Леви
$query = mysql_query("SELECT * FROM table WHERE uid = '1' ORDER BY id DESC");
$results = array();
while($line = mysql_fetch_array($query, MYSQL_ASSOC)){
$results[] = $line;
}
Это не включает в себя функции sql для сбора данных, но я создал таблицу для моей проблемы (была такая же проблема). Кстати, это моя таблица. Так что это скорее пример, чем объяснение.
Это не полное объяснение, а пример кода.
ТАБЛИЦА:
[ID | Родитель | имя | href | название]
CODE:
foreach ($query->result_array() as $row)
{
if ($row['parent'] === null)
$data[$row['id']][0]= '<a href="'.$row['href'].'"'.($row['title']!==null)?'title="'.$row['title'].'"':''.'>'.$row['name'].'</a>';
else
{
$temp = '<a href="'.$row['href'].'"'.($row['title']!==null)?'title="'.$row['title'].'"':''.'>'.$row['name'].'</a>';
array_push($data[$row['parent']],$temp);
}
}
Я использовал это для создания ссылок для своего навигатора. Затем я использовал функцию, чтобы сделать из них многоуровневый список. По моей проблеме. Это очень схожая проблема, но это было моим решением.
Если вы хотите. Вместо того, чтобы создавать свою собственную версию. Я могу сделать аналогичный код, используя вашу схему базы данных для данных.
Предупреждение: Кажется, что это может работать только на двухуровневой компоновке. Ill импровизировать код еще несколько и опубликовать следующую версию моего фрагмента.
$query = mysql_query("SELECT * FROM table WHERE uid = '1' ORDER BY id DESC");
$results = array();
$num_fields=mysql_num_fields($query);
$num_rows=mysql_num_rows($query);
while($line = mysql_fetch_array($query)){
for($i=0;$i<$num_rows;$i++
{
for($j=0;$j<$num_fields;$j++
{
$results[$i][$j]=$line[$i][$j];
}
}
}