Это будет опять построчно
Неужели трудно сделать таблицу из одной строки, написать
, начать выводить, и в нужном месте всего лишь подставить | ?
Записан
« Ответ #7 : 10 Августа 2003, 07:59:24 »
$query_1 = "SELECT title FROM map WHERE id = \'$value[parent]\'"; $result_1 = mysql_query($query_1); $value_1 = mysql_fetch_array($result_1); $str = strtolower($value_1[title]); if($value = @mysql_fetch_array($result)) { // Выводишь первый результат; $query_1 = "SELECT title FROM map WHERE id = \'$value[parent]\'"; $result_1 = mysql_query($query_1); $value_1 = mysql_fetch_array($result_1); $str = strtolower($value_1[title]); //выводишь второй }
Записан
.::dO_ob::.
« Ответ #8 : 10 Августа 2003, 10:49:49 »
госссподи! это еще что за монстр? нободя, ты сам-то понял, что это за бред?! какой еще "первый-второй"? Зачем тут два запроса? не пей больше эту гадость
Записан
« Ответ #9 : 10 Августа 2003, 20:35:11 »
Положу всё-таки и свою реализацию... Вообще, при выводе ПО СТОЛБЦАМ надо бы задавать кол-во строк, но для web\'а это не очень, поэтому задаю МАКСИМАЛЬНОЕ кол-во столбцов; реальное кол-во столбцов в зависимости от кол-ва отображаемых элементов может быть меньше. # input parameters { define(\'MAX_COLUMNS_QTY\', 5); $intElemQty = 19; # } input parameters $intRowQty = ceil($intElemQty / MAX_COLUMNS_QTY); define(\'COLUMNS_QTY\', ceil($intElemQty / $intRowQty)); echo \' \';
for ( $intRow = 1; $intRow <= $intRowQty; $intRow++ ) { echo \'\'; for ( $intElem = $intRow; $intElem <= ( COLUMNS_QTY - 1 ) * $intRowQty + $intRow; $intElem += $intRowQty ) {
if ( $intElem <= $intElemQty ) { echo \'Element #\' . $intElem . \' | \'; } # if else { echo \' | \'; }; # else
}; # for echo \' \'; }; # for
echo \' \'; ?>
Записан
« Ответ #10 : 10 Августа 2003, 21:23:15 »
чавой-то я не врубаюсь в этот код. устал, наверное. когда столько лишних, на мой взгляд, операторов, я просто теряюсь. что он делает? второй дефайн - это на случай, если колонок окажется больше, чем данных? короче, это все левота опять у тебя. я все понимаю - код академичный и суперправильный. но за ним МЫСЛИ не видно. во! нашел. учись студент. никаких дефайнов и типов переменных спереди имени нету, но зато рабоотает, и все понятно. аж два варианта на выбор. http://phpclub.net/talk/showthread.php?s=&threadid=22969
Записан
« Ответ #11 : 10 Августа 2003, 21:36:11 »
RomikChef, "учись студент" - я не заметил, а "устал, наверное" - заметил.
> что он делает? Запусти и потести на разных данных.
> зато рабоотает И мой работает.
Всё, флейм прекращаю. Извините.
Записан
« Ответ #12 : 11 Августа 2003, 12:07:13 »
запустил. мне надо вывести из базы. построчно. твой код не работает. Ы?
Ты молодец, конечно, правильно решил алгоритмическую задачку, которая не по зубам 90% посетителей этого форума. можешь по праву собой гордиться. вот только вопрос был не теоретический, а ПРАКТИЧЕСКИЙ. И ты ЭТОТ практический вопрос даже со второй попытки не решил. Ты стал его решать "в лоб". Как вывести таблицу так, чтобы элементы шли в столбик.
А там о базе идет речь. А из базы я не могу вытаскивать строку текущая+5, а потом скакать обратно. (нет, могу, конечно, но это в 100 раз медленнее, чем доставать построчно)
И вся твоя "правильность" в оформлении не стоит накладных расходов, которые потребуются для выполнения твоего "правильного" алгоритма. Либо убивать базу сиками, либо считывать все сначала в массив (абсолютно лишняя операция).
В теории у тебя все хорошо. Но человек просил решение не алгоритмической задачи, а вполне конкретной. выводить строчки базы в веб. а для этого есть вполне простое хтмл решение. продолжай уччиться :-)
по поводу "не заметил" - я действительно разобраться смог только после того, как привел к удобочитаемому виду и выкинул все лишнее. Не воспринимаю код без отступов. Ты можешь объяснить, зачем тебе здесь понадобились константы? Это такой стиль программирования - чтобы врагам было труднее читать, а своих не жалко?
$intCols=5; $intElemQty = 19;
$intRowQty = ceil($intElemQty/$intCols); $intCols=ceil($intElemQty/$intRowQty); echo \'<table width="100%" border=1>\'; for ($intRow=1;$intRow<=$intRowQty;$intRow++ ) { echo \'<tr>\'; for ($intElem = $intRow; $intElem <= ($intCols-1)*$intRowQty+$intRow; $intElem += $intRowQty) { if ($intElem <= $intElemQty) { echo \'<td>Element #\' . $intElem . \'</td>\'; } else { echo \'<td> </td>\'; } } echo \'</tr>\'; } echo \'</table>\';
Записан
« Ответ #13 : 11 Августа 2003, 12:19:01 »
> Ты молодец, конечно, > можешь по праву собой гордиться. Прекращай кормить меня леденцами :-) Мне уже 27.
> ты ЭТОТ практический вопрос даже со второй попытки не решил. Согласен. Но ТОЛЬКО потому - что, не подумав, решал не его.
> вся твоя "правильность" в оформлении Она вообще не при чём. Я просто привык так писать.
> продолжай уччиться :-) да я и не прекращал
> Не воспринимаю код без отступов. Они, конечно, там были. Форум съел. Наверное, тэги какие-то юзать надо было...
> Ты можешь объяснить, зачем тебе здесь понадобились константы? Первая - из разряда "настроечных", это правильно, по-моему. Вторая - согласен, переменная вполне подойдёт.
Записан
« Ответ #14 : 11 Августа 2003, 13:04:21 »
приобщусь <?
$dbQuery = \'select name from table order by id\';
$result = mysql_query($dbQuery);
$count = mysql_num_rows($result);
$rows_in_td = $count/2;
$rows_printed = 0;
$j = 0;
# цикл для вывода записей сначала в один столбик, потом в другой
while ($row = mysql_fetch_row($result))
{
if ($rows_printed < $rows_in_td) {
$td1 .= $row[0].\' \';
} else {
$td2 .= $row[0].\' \';
}
$rows_printed++;
}
# цикл для вывода записей в оба столбика поочередно
while ($row = mysql_fetch_row($result))
{
if ($j==0) {
$td1 .= $row[0].\' \'; $j = 1;
} else {
$td2 .= $row[0].\' \'; $j = 0;
}
}
print \'<table><tr>\';
print \'<td>\'.$td1.\'</td>\';
print \'<td>\'.$td2.\'</td>\';
print \'</tr></table>\'; ?>
« Последнее редактирование: 11 Августа 2003, 13:20:47 от Croaker »
Записан
Не все коту матрица.
|