Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: someURL?id=...
 
 автор: Лена   (21.03.2008 в 11:16)   письмо автору
 
 

Материал на странице размещен таким образом: слева - рубрики меню, по центру - содержание разделов, справа - блоки ссылок. Рубрики меню - в базе в одной таблице, а блоки ссылок (те, что справа) - в другой таблице. Проблема вот в чем. Если id рубрики меню совпадает с id ссылки, то броузер выводит someURL?id=7 (номер id может быть 1,2,3 и т.д.) и по центру ничего не отображается.
Как можно поставить условие, чтобы при выведении содержимого рубрик меню (по центру страницы) справа выводились только названия ссылок, а если выводится статья по ссылке (по центру), слева - только список рубрик.
Если что-то не понятно, тогда вышлю код.
Заранее спасибо.

   
 
 автор: sim5   (21.03.2008 в 11:36)   письмо автору
 
   для: Лена   (21.03.2008 в 11:16)
 

Действительно не совсем понятно. По умолчанию у вас загрузилось меню, содержание и ссылки (кстати, ссылки на что?). Например, в меню вы делаете запрос на рубрику с id=3. Если таковая существует, и если у вас нет ошибок в оработке запроса, а также вы верно формируете вывод запроса, то все должно работать. При чем тут id ссылки, как они связаны с рубриками, не дублируют ли они меню?

   
 
 автор: Лена   (21.03.2008 в 12:19)   письмо автору
 
   для: sim5   (21.03.2008 в 11:36)
 

Выкладываю код. Без CSS, шапки и дна страницы. По умолчанию у меня загружается меню, содержание и справа - ссылки на статьи, которые достаются из базы (не сами статьи, а ссылки на них и по ссылке переходим к нужному файлу). Например, я делаю запрос на рубрику с id=3. Содержание рубрики не показывается, а показывается содержание ссылки справа, у которой id=3.
Причем это содержание показывается (только не смеяться!) справа, от чего правая колонка растягивается до немыслимых размеров и у меня наступает полная паника. Как организовать логику так, чтобы на странице все было в порядке и содержание разделов выводилось по центру, и содержание ссылок тоже выводилось по центру.
Опишите, пожалуйста, пошагово.
Да, ссылки никак разделы меню не дублируют - находятся в отдельной таблице в базе.

Заранее спасибо.

   
 
 автор: sim5   (21.03.2008 в 18:17)   письмо автору
 
   для: Лена   (21.03.2008 в 12:19)
 

У вас есть ошибки. Тут:

<?
echo("<A HREF='?id=$id1'>{$row["title"]}</A>&nbsp;&nbsp;\n");

А так же в РНР-тегах, если вы конечно только в описании их случайно не написали.
Вообще же в таком коде (хотя он и простой) трудно ориентироваться. Может лучше так:

<?php
//определяем функции
function func1() {
//
}
function 
func2() {
//'
}
function 
func3() {
//
}
//и т.д.
?>
//вывод
<table>
<tr>
<!-- блок меню -->
<td>вызов функции <?php func1 ?></td>
<!-- контент -->
<td>вызов функции <?php func2 ?></td>
<!-- блок ссылок -->
<td>вызов функции <?php func3 ?></td>
</tr>
</table> 

В общем так, что бы легко читалась структура будующей страницы. И не понятен вообще вызов контента, все в куче. Что у вас должно определять пункты меню, а что ссылки?

   
 
 автор: Лена   (24.03.2008 в 10:13)   письмо автору
 
   для: sim5   (21.03.2008 в 18:17)
 

Пункты меню - это названия рубрик. Нажимаешь на рубрику - появляется список ссылок - названий статей, которые принадлежат к этой рубрике. Этот список ссылок должен появиться в центральной ячейке. Дальше нажимаешь на ссылку - и появляется (здесь же, по центру) отдельная статья. Слева - список ссылок на статьи, которые должны вызываться из базы, как вы посоветовали, функцией func3(). Нажимаешь на ссылку - и по центру должна появиться отдельная статья. Попробую все переделать, чтобы все было понятнее.

   
 
 автор: sim5   (24.03.2008 в 11:03)   письмо автору
 
   для: Лена   (24.03.2008 в 10:13)
 

Я func3() написал как пример, в вашем же случае, это должен быть подключение:
include "select_link.php";
Как бы это вам сказать. Например, векторы прерываний процессоров, всегда находятся в начальных его адресах не потому, что так красиво, а потому, что это выгодно. Если вы пишите функции, определяете переменные и константы к которым постоянно будет обращаться скрипт - определяйте это сразу, в самом верху, это удобнее. Если эти функции, константы, переменные требуются на многих страницах кода, то их лучше поместить в отдельные подключаемые файлы.
Вы ведь "не врагу" это пишите, а для себя, и если писать так, то при усложнении скрипта, вам все труднее будет разбираться в нем. Поместите код, который вы прикрепили, в редакторе с подсветкой кода, и вы увидите сразу ошибки: лишние РНР-теги, неверные кавычки.
Что касается вывода, то в ячейке таблицы, которая отображает контент, вам нужно просто проверять полученную переменную. Если это $_GET['id_menu'], то вы должны просто оратиться к функции, которая выводит названия рубрик (вот этого я не понимаю, если конечно это не вывод названий рубрик за месяцы, например). Если же в запросе $_GET['id'], то обращаетесь к другой функции. А по умолчанию (начальный вывод страницы, нет еще запросов), выводите что-то по умолчанию.
Но зачем выводить список названий рубрик (список ссылок) в окне контента, если справа вы выводите их же? Или это совсем другие ссылки? А как же тогда у вас просмотреть сам контент? В общем тут я ничего не понял.:))
Да и вообще. Наверное лучше в ваших функциях просто обращаться к базе и получить содержимое, а вот уже вывод (HTML-элементы, стили и пр.) делать отдельно. Тогда можно сделать функцию унирверсальной, например, получать данные за период (наример, при поиске), получать только последние (новые рубрики), и т.д.. Тогда будут проще изменить и стиль вывода. Ну это так, чисто предложение, вы можете делать и так, как и делаете.

   
 
 автор: Лена   (24.03.2008 в 11:16)   письмо автору
 
   для: sim5   (24.03.2008 в 11:03)
 

Все переделала. Убрала свой select_link.php, построила пока на одних функциях, потом, возможно, буду подключать их как отдельный файл.
Код - в прикрепленном файле.
Пишет ошибку: Parse error: parse error, unexpected T_FUNCTION in s:\home\localhost\www\index\index222.php on line 108
В этой строке у меня: if (isset ($_GET['cid'])) func3(); ?></td>
Это ссылки, которые выводятся справа - они с рубриками меню и с содержимым рубрик меню никак не связаны. Функция func3() выводит список этих ссылок. Потом нажимаешь на каждую из этих ссылок - и по центру появляется отдельная статья - действует func4()

func3() и func4() вообще не работают - ссылки из базы не выводятся

Трудно передать словами, как я вам благодарна.

   
 
 автор: sim5   (24.03.2008 в 12:18)   письмо автору
 
   для: Лена   (24.03.2008 в 11:16)
 

Елена, если я не ошибаюсь, вы та самая Елена, которая работает в издательстве.
Я вам привел пример, как разбить ваш код, на собственно код, и непосредственно вывод (хотя во время вывода без вставки php-кода не получится), для того, чтобы легче было вам же разбираться в ошибках php-кода и непосредственно HTML. Имена функций func1() - func3() я привел как пример (взял с "потолка"), а вы видимо вставили это в свой код - естественно вы получите это сообщение об ошибке.
Девушка вы умная, я думаю, что вы разберетесь, что у вас в коде лишнее. :)

[поправлено модератором]

   
 
 автор: Лена   (24.03.2008 в 12:39)   письмо автору
 
   для: sim5   (24.03.2008 в 12:18)
 

Да, я та самая Лена, у которой однажды возникла бредовая идея создать сайт. И все началось с Вашего Денвера. Раньше не подозревала, что работа программиста в тысячи раз сложнее, чем работа редактора. Благо, времени у меня достаточно, никто в спину не гонит.. Я не хочу брать чужой код, я хочу разобраться в общей логике создания страниц. Тем более, писать код так же интересно, как и делать статьи.
Нет, я не в юмористическом издательстве работаю и на форум хожу не шутить и не развлекаться. :-))) Имена функций поставлены ПРАВИЛЬНО. Уверена на 100%. Вот только ума не хватает, чтобы разобраться.
Если Вам нетрудно, откройте еще раз код. В центральной ячейке должны "сработать"(не знаю, как правильно назвать) три функции: singleArticle(); Groupe_of_Article(); func4(). Если Вам не нравится название последней функции, назовите ее, как на душу ляжет. И получается, что singleArticle(); Groupe_of_Article(); работают, а func4() - нет, потому что что-то ей мешает. Нужно сделать так: если работают singleArticle(); Groupe_of_Article(), то func4() - не работает, а как это поставить в условии при вызове этой функции? И если func4() работает, то не работают singleArticle(); Groupe_of_Article().
Комптиментов больше не надо, лучше помогите. И я в свою очередь не буду писать про безграничную благодарность, которой не видно ни конца ни края... :-)))

   
 
 автор: sim5   (24.03.2008 в 15:24)   письмо автору
 
   для: Лена   (24.03.2008 в 12:39)
 

Вообще-то Денвер не мой, а Котерова. :)) Не надо много благодарностей. Посмотрю, если кто либо раньше меня этого не сделает - честное слово, просто не хватает времени сейчас. Я в основном захожу на форум чтобы просто почитать. Если вы не против, то напишу вам письмом, подробно, но позднее немного.

   
 
 автор: Лена   (24.03.2008 в 15:49)   письмо автору
 
   для: sim5   (24.03.2008 в 15:24)
 

Я не против. В ожидании письма.

   
 
 автор: Atheist   (24.03.2008 в 15:58)   письмо автору
 
   для: Лена   (24.03.2008 в 15:49)
 

Лучше писать так karaush [ э т ] meta.ua, чем прямым e-mail - иначе можно попасть в спамерские базы данных.

http://softtime.ru/forum/editpost.php?id_forum=1&id_theme=51114&id_post=297341

[поправлено модератором]

   
 
 автор: Лена   (25.03.2008 в 09:58)   письмо автору
 
   для: Atheist   (24.03.2008 в 15:58)
 

Спасибо за предупреждение.

   
 
 автор: ONYX   (21.03.2008 в 11:36)   письмо автору
 
   для: Лена   (21.03.2008 в 11:16)
 

Если я правильно понял, может просто использовать разные имена при передаче id допустим id и cid а после проверить какая из них имеет значение и присвоить его основному id

$id = $_GET['id'];
$сid = $_GET['сid'];
if(!empty($cid)) $id=$cid


Если ошибаюсь выложи код

   
 
 автор: Лена   (21.03.2008 в 12:21)   письмо автору
 
   для: ONYX   (21.03.2008 в 11:36)
 

Что вы имели ввиду под основным id?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования