[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: вывод данных из 25.000 записей
agentor
у меня имеется такой вопрос.
в базе данных имеется 25.000 записей городов.
в каждой записи города присутствует ID к какому он региону принадлежит..
Области в текстовой форме

Вопрос:

Как вывести из данной базы только одни названия областей но так что бы они не повторялись?

например что бы было так:
Кемеровсая обл.
Московская обл
Нижехгородская обл.
ит.д

для начала я сделал так
PHP
<?php
$facc
=0;
$res1 mysql_query("SELECT bundesland FROM geodata_de ORDER BY bundesland");
while(
$row1 mysql_fetch_array($res1)) {
$facc++;
echo
"<li><span>".$row1["bundesland"]."</a></li>";
}


но выводит все 25.000 записей областей т.е повторяются



Спустя 30 минут, 39 секунд (26.07.2009 - 19:57) kirik написал(а):
Это нужно?
SQL
SELECT bundesland FROM geodata_de GROUP BY bundesland ORDER BY bundesland

Спустя 39 минут, 28 секунд (26.07.2009 - 20:36) Krevedko написал(а):
опередил )

Спустя 52 минуты, 43 секунды (26.07.2009 - 21:29) agentor написал(а):
да именнно..спасибо огромное

Спустя 3 часа, 49 минут, 7 секунд (27.07.2009 - 01:18) Alchemist написал(а):
а не лучше будет использовать DISTINCT ?

Спустя 4 минуты, 47 секунд (27.07.2009 - 01:23) kirik написал(а):
Цитата (Alchemist @ 26.07.2009 - 17:18)
а не лучше будет использовать DISTINCT ?

как правило GROUP BY быстрее.. Где-то тема была по этому поводу.. Щас пруфлинк попробую найти

Спустя 9 дней, 23 часа, 53 минуты, 57 секунд (7.08.2009 - 01:17) agentor написал(а):
спасибо всё класно работает..
внёс кое какие нужны изминения...и также возник вопрос при выводе данных на страницу

на данный момент выводит все существующие записи в 3 Колонки по вертикали
Вопрос:

Как сделать что бы в Колонках ,после каждой 5 записи шол знак Пробела ( <br>) .т.е что бы в каждой колонке шол разделитель после каждых 5 записей?

Собственно вот код...
прошу помощи...

PHP
<tr valign="top"><td>
<
ul>
<?
php
$r 
mysql_query("SELECT * FROM geodata_de WHERE ort = ".sqlesc($row1[0])." GROUP BY ortschaft, plz ORDER BY ortschaft ASC") or die ('error 6');
$columns 3;
for (
$i 0$rowid mysql_fetch_row($r); $i++) {
if ((
$i $columns) == 0) {
echo 
" </td></tr>\n";
}
print(
"<td><li>
<a href=index.php?d=step3&idC="
.$rowid[1]."&idR=".$rowid[2]."&idCi=".$rowid[0]."&razd=".$razd."><b><small>".htmlspecialchars($rowid[8])." - ".htmlspecialchars($rowid[9])." (".htmlspecialchars($rowid[7]).")</small></b></a>
</li></td>"
);
if ((
$i $columns) == ($columns 1)) {
echo 
" </td>
</tr>\n"
;
}
}
?>
&

Спустя 30 минут, 53 секунды (7.08.2009 - 01:48) kirik написал(а):
Цитата (agentor @ 6.08.2009 - 17:17)
3 Колонки по вертикали

Колонки по горизонтали называются строками wink.gif

Добавь перед
PHP
print("<td><li>
<a href=index.php?d=step3&idC="
.$rowid[1]."&idR=".$rowid[2]."&idCi=".$rowid[0]."&razd=".$razd."><b><small>".htmlspecialchars($rowid[8])." - ".htmlspecialchars($rowid[9])." (".htmlspecialchars($rowid[7]).")</small></b></a>
</li></td>"
);

этот код:
PHP
if($i == 0)
     echo 
'<td>&nbsp;</td>';

должно помочь.

Спустя 16 минут, 2 секунды (7.08.2009 - 02:04) agentor написал(а):
спасибо..попробовал но не помогло.разбило всё да и добавило ещё пару строк..

Спустя 16 минут, 40 секунд (7.08.2009 - 02:20) kirik написал(а):
Вот код номер раз (для примера)
PHP
$columns = 3; // количество колонок.
$separate = 5; // разделять таблицу каждые n строк

$table = range(1, 50);
$all_columns = array_chunk($table, ceil(count($table) / $columns));

$table = '<table>'."\n";
for(
$i = 0, $c = count($all_columns[0]); $i < $c; $i++)
{
    if($i % $separate == 0 && $i > 0)
        $table .= '<tr>'.str_repeat('<td>&nbsp;</td>', $columns).'</tr>'."\n";

    $table .= '<tr>'."\n";

    for($si = 0; $si < $columns; $si++)
    {
        $data = isset($all_columns[$si][$i]) ? $all_columns[$si][$i] : '&nbsp;';
        $table .= "\t".'<td>'.$data.'</td>'."\n";
    }

    $table .= '</tr>'."\n";
}
$table .= '</table>';

echo $table;


Вот код для тебя
PHP
$columns = 3;
$separate = 5;

$table = array();
$query = mysql_query("SELECT * FROM geodata_de WHERE ort = ".sqlesc($row1[0])." GROUP BY ortschaft, plz ORDER BY ortschaft ASC") or die ('error 6');
while(
$row = mysql_fetch_row($query))
{
    $table[] = $row;
}
mysql_free_result($query);

$all_columns = array_chunk($table, ceil(count($table) / $columns));

$table = '<table>'."\n";
for(
$i = 0, $c = count($all_columns[0]); $i < $c; $i++)
{
    if($i % $separate == 0 && $i > 0)
        $table .= '<tr>'.str_repeat('<td>&nbsp;</td>', $columns).'</tr>'."\n";

    $table .= '<tr>'."\n";

    for($si = 0; $si < $columns; $si++)
    {
        $data = isset($all_columns[$si][$i]) ? $all_columns[$si][$i] : '&nbsp;';
        $table .= "\t".'<td>'.$data.'</td>'."\n";
    }

    $table .= '</tr>'."\n";
}
$table .= '</table>';

echo $table;

Спустя 10 часов, 55 минут, 37 секунд (7.08.2009 - 13:16) agentor написал(а):
да..спасибо огромнейщее..всё отлично встало на свои места
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.