|
|
|
| Так получилось, что была создана таблица одной структуры, а оказывается, нужна была другая. Данные уже в таблице, по-этому хочу попытаться выкрутиться.
Нужно реализовать что-та на подобие графика на картинке вложенной.
Ситуация такая, что используя запрос
SELECT file.model FROM table_name
|
нужно выявить совпадения в столбце с названием файла, и присвоить ему все значения моделей из второго столбца, которым присваивается этот же файл в других записях. на словах тяжеловато объяснить, мне кажется схема это все объясняет лучше. Если кто знает как это делает, буду надеяться на помощь.
Я не знаю это просто или нет, но пока в голову ничего не приходит
Спасибо | |
|
|
|
|
|
|
|
для: dimon
(26.10.2007 в 13:27)
| |
$query_select = "select DISTINCT file.model FROM table_name";
$result_select = mysql_query($query_select) or die("Query failed : " . mysql_error());
$num_result_select = mysql_num_rows($result_select);
if($num_result_select != 0)
{
while ($line_select = mysql_fetch_array($result_select, MYSQL_ASSOC))
{
$file$line_select[file.model] = array();
$query_select2 = "select * from table_name where file.model =$line_select[file.model]";
$result_select2 = mysql_query($query_select2) or die("Query failed : " . mysql_error());
$num_result_select2 = mysql_num_rows($result_select2);
while ($line_select2 = mysql_fetch_array($result_select2, MYSQL_ASSOC))
{
$file$line_select[file.model][] = $line_select[col2];
}
}
}
|
| |
|
|
|
|
|
|
|
для: Poul
(26.10.2007 в 13:58)
| | что-то я не пойму, а почему $file$line_select вместе пишуться? это разве не играет никакой роли?
да, и кстати, прошу прощения за опечатку в запросу SQL: вместо file.model нужно files, model, т.е. выборка из двух таблиц. | |
|
|
|
|
|
|
|
для: dimon
(26.10.2007 в 13:27)
| | всё почти так-же
<?
$name = '';
$query = "SELECT files, model FROM table_name ORDER BY files";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
if (mysql_num_rows($result); ) {
while ($line = mysql_fetch_assoc($result) )
{
if ($name != $line['files']) echo 'создан массив $' . ($name = $line['files']) . ".<br>'\n" ;
$$line['files'][] = $line['model'] ;
}
}
?>
|
непроверял, но должно работать
// но поскольку не удобно будет получать имена массивов после этого ,
лучше сделать один массив
<?
$massiv = array();
$query = "SELECT files, model FROM table_name";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
if (mysql_num_rows($result); ) {
while ($line = mysql_fetch_assoc($result) )
{
$massiv[ $line['files'] ][] = $line['model'] ;
}
}
var_dump($massiv);
?>
|
тоже не проверял :) | |
|
|
|
|
|
|
|
для: EXP
(27.10.2007 в 00:37)
| | ок, спасибо! буду пробовать... сообщу о результатах. | |
|
|
|
|
|
|
|
для: EXP
(27.10.2007 в 00:37)
| | кажысь получилось... первые примеры, по незнанию, я стал перелопачивать и залез в тёмный лес.... но последний пример оказался почти то что нужно, но я немного изменил код, чтоб ключи массива, т.е. имена файлов не повторялись:
<?php
function mkArrayFromDistinct ($col1, $col2, $tablename){
$massiv = array();
$query = "SELECT $col1, $col2 FROM $tablename";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
if (mysql_num_rows($result)) {
while ($line = mysql_fetch_assoc($result)) {
if (!array_key_exists($line[$col1], $massiv)){
$massiv[$line[$col1]][] = $line[$col2];
}
else array_push($massiv[$line[$col1]], $line[$col2]);
}
}
print_r ($massiv);
}
?>
|
спасибо за участие | |
|
|
|