| |
|
|
| | Надо сделать что бы сначала показывались "Мир'а" где больше всего человек
"count($worlds[$world_name])"
Ну а потом уже сортировались те кто находиться в данном мире
"$worlds[$world_name][$q]"
по естественной сортировке.
<?php
include "config.php";
$query = "select * from chars where hide = 1";
$thm = mysql_query($query);
while($themes = mysql_fetch_array($thm))
{
$CharsNick = trim($themes['CharsNick']);
$CharsWorld = trim($themes['CharsWorld']);
$worlds [$CharsWorld][] = "$CharsNick";
}
echo "<table width=100%><tr><td>";
foreach ($worlds as $world_name => $arr)
{
if (empty($qs)) $qs = 1;
$qs++;
echo "<td valign=top><table border=1 width=100%><tr><td>Мир $world_name</td></tr><tr><td>";
for ($q = 0; $q < count($worlds[$world_name]); $q++)
{
echo $worlds[$world_name][$q]."<br>";
}
echo "</td></tr></table></td>";
if (($qs>1) && ($qs%5 != 0)) echo "</td><td width=6.25%></td><td>";
if (($qs%5) == 0) echo "</td></tr><td height=20></td><tr><td>";
}
echo "</td></tr></table>";
?>
|
| |
| |
|
|
| |
|
|
| |
для: Бамси
(13.01.2007 в 18:06)
| | | Посмотрите функции sort и asort. Может чем помогут. | |
| |
|
|
| |
|
|
| |
для: ddhvvn
(13.01.2007 в 18:35)
| | | Я для первого использовал rsort для второго natsort.
Но не получаеться их вставить так что бы они сортировали. | |
| |
|
|
| |
|
|
| |
для: Бамси
(13.01.2007 в 18:38)
| | | Вы не используйте конструкцию while($themes = mysql_fetch_array($thm)) ... , лучше поместите результат запроса $thm, в двумерный массив, а затем примените к нему функции сортировки массивов, который даны Выше. Дальше выводите, как Вам надо. | |
| |
|
|
| |
|
|
| |
для: ddhvvn
(13.01.2007 в 19:04)
| | | Я не понимаю как запихнуть в многомерный массив данные из БД, и еще как то их разделить. В примерах я нашел только где массивы назначаються явным образом. | |
| |
|
|
| |
|
|
| |
для: Бамси
(13.01.2007 в 20:31)
| | | Ну, например, я думаю можно поступить так:
<?php
...
while($one_theme = mysql_fetch_array($thm))
{
$themes[] = $one_theme;
}
sort($themes);
...
?>
|
| |
| |
|
|
| |
|
|
| |
для: ddhvvn
(13.01.2007 в 20:36)
| | | Всеровно не понял. | |
| |
|
|
| |
|
|
| |
для: Бамси
(14.01.2007 в 00:42)
| | | Что тут не понять? :))
В цикле while читается результат запроса, он помещается в двумерный массив.
Например $themes[0] будет содержать результат запроса для первой подходящей строки таблицы.
Потом нужно отсортировать его (массив, $themes), как Вам нужно, запустить цикл for (или foreach) и вывести через него результат. И все! | |
| |
|
|
| |
|
|
| |
для: ddhvvn
(14.01.2007 в 10:01)
| | | Мои знанения PHP на уровне барана с полянки.
Смотрел а скрипт полтора часа них. не понял.
while($one_theme = mysql_fetch_array($thm))
{
$themes[] = $one_theme;
}
Как я понял он засовывает в массив themes все данные.
и themes[1] допусти мне вывливает полную информацию о строке номер 1.. и т.д.
Но что с тим делать я хз, и как это поделить на двумерный массив. | |
| |
|
|
| |
|
|
| |
для: Бамси
(14.01.2007 в 14:04)
| | | В моем примере $themes и так становится двумерным массивом.
Стоп. Я немного упустил Ваш код (а он, кстати Ваш?). Там и так создается двумерный массив $worlds.
Тогда сделайте такие изменения в скрипте (привожу весь код!):
<?php
include "config.php";
$query = "select * from chars where hide = 1";
$thm = mysql_query($query);
while($themes = mysql_fetch_array($thm))
{
$CharsNick = trim($themes['CharsNick']);
$CharsWorld = trim($themes['CharsWorld']);
$worlds [$CharsWorld][] = "$CharsNick";
}
sort($worlds);
echo "<table width=100%><tr><td>";
foreach ($worlds as $world_name => $arr)
{
if (empty($qs)) $qs = 1;
$qs++;
echo "<td valign=top><table border=1 width=100%><tr><td>Мир $world_name</td></tr><tr><td>";
for ($q = 0; $q < count($worlds[$world_name]); $q++)
{
echo $worlds[$world_name][$q]."<br>";
}
echo "</td></tr></table></td>";
if (($qs>1) && ($qs%5 != 0)) echo "</td><td width=6.25%></td><td>";
if (($qs%5) == 0) echo "</td></tr><td height=20></td><tr><td>";
}
echo "</td></tr></table>";
?>
|
Т.е. нужно добавить всего одну строчку "sort($worlds);". Я сейчас немного занят, по этому не проверял скрипт, так что если, что не так напишите, может я что опять упустил :)) | |
| |
|
|
| |
|
|
| |
для: ddhvvn
(14.01.2007 в 14:59)
| | | Спасибо, ладно фиг с ним,и так сойдет не кого не хочу мучить :)
А скрипт Made By Kasmanaft.
А ннет.. еще вопрос если я пишу
sort($worlds);
То он сортирует, НО заменяет название миров их номером в массиве. | |
| |
|
|
| |
|
|
| |
для: Бамси
(14.01.2007 в 15:12)
| | | А да, стоп забыл :))
Есть функция, которая так не делает.
Попробуйте так: asort($worlds); | |
| |
|
|
| |
|
|
| |
для: ddhvvn
(14.01.2007 в 16:17)
| | | Использовал
arsort($worlds);
Спасибо. | |
| |
|
|
| |
|
|
| |
для: Бамси
(14.01.2007 в 16:55)
| | | Так помогло или нет? | |
| |
|
|
| |
|
|
| |
для: Бамси
(13.01.2007 в 18:38)
| | | rsort($array);
natsort($array['key']); | |
| |
|
|
| |
|
|
| |
для: Sergey89
(13.01.2007 в 19:28)
| | | Он если сортируеут то заменяет название номера на номер в массиве. | |
| |
|
|