Это будет опять построчно
Неужели трудно сделать таблицу из одной строки, написать , начать выводить, и в нужном месте всего лишь подставить | ?
$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]); //выводишь второй }
госссподи! это еще что за монстр? нободя, ты сам-то понял, что это за бред?! какой еще "первый-второй"? Зачем тут два запроса? не пей больше эту гадость
Положу всё-таки и свою реализацию... Вообще, при выводе ПО СТОЛБЦАМ надо бы задавать кол-во строк, но для 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 \' \';
?>
чавой-то я не врубаюсь в этот код. устал, наверное. когда столько лишних, на мой взгляд, операторов, я просто теряюсь. что он делает? второй дефайн - это на случай, если колонок окажется больше, чем данных? короче, это все левота опять у тебя.
я все понимаю - код академичный и суперправильный. но за ним МЫСЛИ не видно.
во! нашел. учись студент. никаких дефайнов и типов переменных спереди имени нету, но зато рабоотает, и все понятно. аж два варианта на выбор. http://phpclub.net/talk/showthread.php?s=&threadid=22969
RomikChef, "учись студент" - я не заметил, а "устал, наверное" - заметил.
> что он делает? Запусти и потести на разных данных.
> зато рабоотает И мой работает.
Всё, флейм прекращаю. Извините.
запустил. мне надо вывести из базы. построчно. твой код не работает. Ы?
Ты молодец, конечно, правильно решил алгоритмическую задачку, которая не по зубам 90% посетителей этого форума. можешь по праву собой гордиться. вот только вопрос был не теоретический, а ПРАКТИЧЕСКИЙ. И ты ЭТОТ практический вопрос даже со второй попытки не решил. Ты стал его решать "в лоб". Как вывести таблицу так, чтобы элементы шли в столбик.
А там о базе идет речь. А из базы я не могу вытаскивать строку текущая+5, а потом скакать обратно. (нет, могу, конечно, но это в 100 раз медленнее, чем доставать построчно)
И вся твоя "правильность" в оформлении не стоит накладных расходов, которые потребуются для выполнения твоего "правильного" алгоритма. Либо убивать базу сиками, либо считывать все сначала в массив (абсолютно лишняя операция).
В теории у тебя все хорошо. Но человек просил решение не алгоритмической задачи, а вполне конкретной. выводить строчки базы в веб. а для этого есть вполне простое хтмл решение. продолжай уччиться :-)
по поводу "не заметил" - я действительно разобраться смог только после того, как привел к удобочитаемому виду и выкинул все лишнее. Не воспринимаю код без отступов. Ты можешь объяснить, зачем тебе здесь понадобились константы? Это такой стиль программирования - чтобы врагам было труднее читать, а своих не жалко?
$intCols=5; $intElemQty = 19;
$intRowQty = ceil($intElemQty/$intCols); $intCols=ceil($intElemQty/$intRowQty); echo \'\'; for ($intRow=1;$intRow<=$intRowQty;$intRow++ ) { echo \'\'; for ($intElem = $intRow; $intElem <= ($intCols-1)*$intRowQty+$intRow; $intElem += $intRowQty) { if ($intElem <= $intElemQty) { echo \'Element #\' . $intElem . \' | \'; } else { echo \' | \'; } } echo \' \'; } echo \' \';
> Ты молодец, конечно, > можешь по праву собой гордиться. Прекращай кормить меня леденцами :-) Мне уже 27.
> ты ЭТОТ практический вопрос даже со второй попытки не решил. Согласен. Но ТОЛЬКО потому - что, не подумав, решал не его.
> вся твоя "правильность" в оформлении Она вообще не при чём. Я просто привык так писать.
> продолжай уччиться :-) да я и не прекращал
> Не воспринимаю код без отступов. Они, конечно, там были. Форум съел. Наверное, тэги какие-то юзать надо было...
> Ты можешь объяснить, зачем тебе здесь понадобились константы? Первая - из разряда "настроечных", это правильно, по-моему. Вторая - согласен, переменная вполне подойдёт.
приобщусь
$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 \'\'; print \'\'.$td1.\' | \'; print \'\'.$td2.\' | \'; print \' \'; ?>
Может, .= ?
tserbis
Точно :). Поправил.
Как-то всё сложновато. Если нужно всего лишь вывести результаты в табличку из двух столбиков, то довольно просто сделать это так:
$res=mysql_query(" ЗАПРОС "); $count=mysql_num_rows($res); $i=0; print " "; print ""; while($row=mysql_fetch_row($res)){ if($i%2==0 && $i!=0){print " ";} print "$row[1] ..... $row[..n...] | "; $i++; if($count==$i && $i%2!=0){print " | ";} ### пустая ячейка, чтобы не было дырки в таблице } print " ";
не правда ли, достаточно просто...
Croaker, вот ты тоже - собираешь совсем ненужную переменную. В общем-то - ничего страшного, но некрасиво...
pahal, если бы ты потрудился пойти по ссылке, которую я дал, то мог бы не трудиться набивать здесь точно такой же код.
Конечно, все очень замечательно. Попробовал два варианта и оба хорошо работают, т.е. они выводят таблицу такого вида: +----+----+ | 1 | 2 | +----+----+ | 3 | 4 | +----+----+ | 5 | 6 | +----+----+
Как видно, таблица (выше) заполняется по строкам. А как сделать, чтобы таблица заполнялась по столбцам? (см. ниже)
+----+----+ | 1 | 4 | +----+----+ | 2 | 5 | +----+----+ | 3 | 6 | +----+----+
Спасибо за ответ. Может я что-то не так делаю - поправьте.
сделай таблицу в две ячейки, выводи начала в одну, потом во вторую
а среди "Всевозможных Скриптов" подходящего не нашлось? и "Компьютерная Библиотека" тебе не помогла?
мужык http://docs.gets.ru - твое детищо? я плакал
RomikChef: а среди "Всевозможных Скриптов" подходящего не нашлось? и "Компьютерная Библиотека" тебе не помогла? Прикалываетесь? :) И там и там подходящего не нашлось.
RomikChef: мужык http://docs.gets.ru - твое детищо? я плакал Весь портал мой. А что там не так? (ответьте в личку) :)
RomikChef: сделай таблицу в две ячейки, выводи начала в одну, потом во вторую Хех это самое простое. Но мне хочется чтобы все было разделено по полочкам, а не перекашивало...
Minister: Но мне хочется чтобы все было разделено по полочкам, а не перекашивало... а кто тебя заставляет перекашивать? делай ровно.хтмл, чай, знаешь? конкретные проблемы есть?
Здесь форум, вообще-то по программированию. Поэтому, с тем, что кому хочется - это к психоаналитику. если это для вас задачка слишком простая, то вам на олимпиаду какую-нибудь. а мы люди простые. Есть проблемы - решаем. нету проблем - водку пьем. сами себе проблем - не создаем.
ну засунь половину в массив и выводи по очереди, если так хочется водну таблицу. тут же все решения очевидные.
про портал. забавный способ подбора материалов. больше всего напоминает Плюшкина. или воронье гнездо - тащишь все ,что блестит, не понимая ценности. "классы в 3 пыхе" - это очень сильно. остальное я там на месте откомментировал еще днем.
RomikChef: ну засунь половину в массив и выводи по очереди, если так хочется водну таблицу. тут же все решения очевидные. Я конечно никого не прошу написать мне код. Я хотел получить ответ, что нужно изменить в вышепредставленных кодах, чтобы в таблице вывод был равномерным. Сам я пытался там что-то мудрить, но ничего толкового из этого не получил.
Minister: Я хотел получить ответ, что нужно изменить в вышепредставленных кодах, ничего. поскольку здесь есть варианты ВООБЩЕ на любой вкус. если ты разуешь глаза, и напряжешься, чтобы найти нужное, то вопросов у тебя не будет вообще.
теперь я понимаю, почему и на сайте у тебя такая каша. потому, то ты не то, что хорошую стаью отличить не можешь, а даже прочесть до конца, чтобы понять смысл.
а посетители твои - лохи. если пипл хваает - это еще не повод собой гордиться. в телевизоре Степаненко тоже зрителям нравится.
Посетителя воспитывать надо. За лоха - думать надо, пигнками его гнать к хорошему, а не лебезитть и подсовывать "хотите от брата-ламера? Извольте!"
вреда от твоего портала больше, чем пользы.
сделал бы одну ссылку на детайл.пхпклуб.ру там хоть какой-никакой ценз присутствует.
[OFF]RomikChef , перестань, пожалуста, писать ответы в стиле хокку :) [/OFF]
Minister Вообще, конечно, ты хорошее дело делаешь. Опять же - не воруешь, а ссылки ставить. За одно это тебя можно любить, по сравнению с другими библиотекарями.
Это у меня бзик - в пхп СТОЛЬКО ламеров, лезущих писать свои "статьи", что с этим мутным валом бороться очень сложно. я, как могу - борюсь. Снимаю совсем уж одиозныестатьи, вроде курепинской про регистер глобалс.
я не очень понял, приходят ли тебе баг-репорты, так что пара рекомендаций здесь. ВСЕ статьи Дмитрия Бородина находятся по адресу http://php.spb.ru все остальное - воровство. При том, что Бородин - гений, большая часть его статей устарели просто безбожно, а часть была неверной с самого начала
статьи Руслана Курепина лучше вообще убрать. он идиот.
|