форум vBSupport.ru > В помощь веб-мастеру > Общие вопросы сайтостроения
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
cyberdaemon
Эксперт
 
cyberdaemon's Avatar
Default Вопрос не для слабонервных - разбить вывод while в 2 колонки
0

В общем 2 дня бьюсь над кодом -
Code:
<?php
                require_once('ms_con.php');
                $pbe = mysql_connect($pbehostname, $pbeusername, $pbepassword);
                mysql_select_db($pbedatabase, $pbe);
$razd = mysql_query("SELECT * FROM pb_razdel ORDER BY counts DESC, id ASC", $pbe);

echo "<table>";

while ($razdel = mysql_fetch_assoc($razd)) {
$cat = mysql_query("SELECT * FROM pb_categ WHERE razdel=".$razdel['id']."", $pbe);

echo "<tr><td><a href=\"/board/cat.php?r=".$razdel['id']."\">".iconv('cp1251', 'utf-8', $razdel['nazv'])."</a><br /></td></tr>";
while ($categ = mysql_fetch_assoc($cat)) {
echo "<tr><td>".iconv('cp1251', 'utf-8', $categ['nazv'])."</td></tr>";
} 
}

echo "</table>";
?>
Нужен вывод в 2 колонки типа:

Раздел Раздел
Категория 1 Категория 1
Категория 2 Категория 1
............... ...............
Категория Х Категория Х

Раздел Раздел
Категория 1 Категория 1
Категория 2 Категория 1
............... ...............
Категория Х Категория Х

Всю голову сломал, может есть у нас одарённый человек.......
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
kerk
k0t
 
kerk's Avatar
Default
1

если не смотреть на нижнюю часть текста поста, а только код...
я делаю так:
перед циклом while объявляю переменную $count = 0;
сразу после открытия скобки
PHP Code:
{
     
$count++; 
и затем после основного кода в цикле, делаю проверку
PHP Code:
if($count == 2)
{
    echo 
"</tr><tr>";
    
$count 1;

этот код добавляет перенос ячеек таблицы, если ячеек в строке == 2
 
 
cyberdaemon
Эксперт
 
cyberdaemon's Avatar
Default
0

kerk, 0 реакции, вложенный цикл не даёт проверке отработать

Результат - http://infoseti.ee/board2/
 
 
kerk
k0t
 
kerk's Avatar
Default
1

ну значит создавать многомерный массив из двух циклов и затем разбирать его в циклах foreach()
у меня была как то морока с модулем для портала (у нас на главной) там что то подобное было
и никак не получалось сделать все в циклах, при получении данных из БД
только создание массива и затем его разбор
 
 
Sellrion
Kernel panic
 
Sellrion's Avatar
Default
0

Ну для начала:
PHP Code:
$razd mysql_query("SELECT razdel.1, razdel.2, razdel.3, categ.1, categ.2 FROM pb_razdel AS razdel LEFT JOIN pb_categ AS categ ON(razdel.id = categ.razdel) WHERE razdel.id = categ.razdel"$pbe); 
Где "razdel.1, razdel.2, razdel.3, categ.1, categ.2" - имена полей, которые надо получить из двух таблиц. Запрос проверь, мог где-то не то имя написать. Таким образом ты возьмешь все разделы и зацепишь нужное к ним из категорий.

Во-вторых, чет не понятно как тебе их надо вывести. По два в строку таблицы?
 
 
cyberdaemon
Эксперт
 
cyberdaemon's Avatar
Default
0

Всем спасибо, как бы огород вчера таки нагородил, как то выводит, только съезжает местами (вертикально колонки по центру центруются, центровке не поддаются).

Quote:
Originally Posted by Sellrion View Post
Во-вторых, чет не понятно как тебе их надо вывести. По два в строку таблицы?
Как бэ.... перейди по ссылке в 3м посте, как раз увидишь как оно надо (ещё точнее на сайте кнопка "Объявления" сверху, задрало меня между 2мя движками с интеграцией разрываться - портирую доску объявлений потихоньку).

вышло через жопу, но отрабатывает -
Code:
<?php
                require_once('ms_con.php');
                $pbe = mysql_connect($pbehostname, $pbeusername, $pbepassword);
                mysql_select_db($pbedatabase, $pbe);
$razd = mysql_query("SELECT * FROM pb_razdel ORDER BY counts DESC, id ASC", $pbe);

echo "<table>";
$count = 0;
while ($razdel = mysql_fetch_array($razd)) {
$count++;
$cat = mysql_query("SELECT * FROM pb_categ WHERE razdel=".$razdel['id']."", $pbe);

echo "<td valign=\"top\"><a href=\"/board/cat.php?r=".$razdel['id']."\"><strong>".iconv('cp1251', 'utf-8', $razdel['nazv'])."</strong></a><br />";
while ($categ = mysql_fetch_array($cat)) {
echo "<a href=\"/board/cat.php?c=".$categ['id']."\">".iconv('cp1251', 'utf-8', $categ['nazv'])."</a><br />";
} 
echo "<br /></td>";
if($count == 3)
{
    echo "</tr><tr>";
    $count = 0;
}
}

echo "</table>";
?>

Last edited by cyberdaemon : 03-24-2014 at 03:13 PM.
 
 
Sellrion
Kernel panic
 
Sellrion's Avatar
Default
0

Quote:
Originally Posted by cyberdaemon View Post
Как бэ.... перейди по ссылке в 3м посте, как раз увидишь как оно надо.
Когда я по ней утром переходил там была 404-ая.

Sellrion добавил 24.03.2014 в 12:38
Как собственно и сейчас.)

Last edited by Sellrion : 03-24-2014 at 01:38 PM. Reason: Добавлено сообщение
 
 
cyberdaemon
Эксперт
 
cyberdaemon's Avatar
Default
0

Quote:
Originally Posted by Sellrion View Post
Когда я по ней утром переходил там была 404-ая.
Сорри, сорри.....я для себя только открыл доступ......момент.......ща всё будет

cyberdaemon добавил 24.03.2014 в 13:07
Открыто.......отпустило?

Last edited by cyberdaemon : 03-24-2014 at 08:06 PM. Reason: Добавлено сообщение
 
 
Sellrion
Kernel panic
 
Sellrion's Avatar
Default
0

Эм, какой-то ты слишком дерзкий. Я вон тебе хороший совет дал, как можно 100500 запросов заменить на один, помочь хотел грамотно все сделать, а ты открыто... отпустило... Смотри, чтобы такая манера общения не превратилась в привычку, а то не все будут такими же добрыми собеседниками как я. ;)
 
 
cyberdaemon
Эксперт
 
cyberdaemon's Avatar
Default
0

Sellrion, не, ты не так понял, я совет посмотрел, у меня первичный вариант, я уже думал о JOIN, у меня с этим малеха напряжёнка но я к этому приду в любом случае........на счёт "отпустило" - я имел ввиду снялась ли у тебя блокировка на странице.
Quote:
Originally Posted by Sellrion View Post
Смотри, чтобы такая манера общения не превратилась в привычку
Сорри, но я привык прямо в лоб отвечать, да, меня не всегда понимают так, как задумывалось (как это и случилось с "Открыто.......отпустило?")......но это уже вошло в привычку. Привык 1-2мя словами ситуацию описывать.

Last edited by cyberdaemon : 03-24-2014 at 08:11 PM.
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 04:35 AM.


Powered by vBulletin® Version 3.5.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...