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

Форум PHP

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

 

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

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

тема: меню с категориями
 
 автор: Apcen   (19.06.2008 в 17:04)   письмо автору
 
 

Люди помагите плизз
как мне сделать т.к. чтоб не закрывалось миню??вот код

<?php 
$cat
=(int)$_GET['Cat2']; 
$result=array();
if (!empty(
$cat))
{
$result mysql_query("SELECT * FROM Cat2 WHERE Cat2=$cat  ORDER BY Namecat2");
}
$q mysql_query("SELECT * FROM Cat ORDER BY Cat") or die (mysql_error());
while (
$row mysql_fetch_array($q)) {
echo 
"";
echo 
"<a href=\"javascript:open_window('category.php?Cat=$row[Cat]',350,180);\">$row[1]</a>";
echo 
"<font color=red>[</font><a  href=adminT.php?Cat2=$row[Cat]>=></a><font color=red>]<br></font>";
}
?>
</td><td width="75%" height="220" valign="top">
<?php
if ($cat)
{
while(
$row2=mysql_fetch_array($result)) {
echo 
"<center><table border=1 width=426>
<tr><td width=400>
<a href=adminT.php?pid=
$row2[id]>$row2[Namecat2]</a>
</td></tr></table></center>"
;
}
}
//$cat=(int)$_GET['Cat2']; 
$id=(int)$_GET['pid']; 
 if (
$pid) {
  
//выбрать из БД все товары текущей категории
$q mysql_query("SELECT * FROM Cat3 WHERE pid=$id ORDER BY Name2") or die (mysql_error());
$result = array();
$i=0;
while (
$row mysql_fetch_row($q)) $result[$i++] = $row;
if (!
$i) echo "<center>нет товаров</center>";
else { 
//показать товары
for ($i=0$i<count($result); $i++) {
echo 
"<br><center><table border=1 width=426><tr><td width=400>
"
.$result[$i][2]."</td></tr></table></center>";
}
}
}
?>  


при открывании на if pid другое меню закрывается
помагите пожалуйста

   
 
 автор: mihdan   (19.06.2008 в 19:04)   письмо автору
 
   для: Apcen   (19.06.2008 в 17:04)
 

Еще раз и подробнее: задачу опишите

   
 
 автор: Apcen   (20.06.2008 в 10:34)   письмо автору
 
   для: mihdan   (19.06.2008 в 19:04)
 

mihdan ,
У меня скрипт меню которое открывает меню с подгатегорями,
открывает категорию потом подкатегорию потом уже товары.
ток при открытии товары скрипт закрывает меню как не закрывать меню никак у меня не получается ((

   
 
 автор: Usta   (20.06.2008 в 00:15)   письмо автору
 
   для: Apcen   (19.06.2008 в 17:04)
 

Подставь свои параметры, а то мне влом этим заниматься, и все!!!
 
<script language="javascript">
function getObj(id) {
    if (document.getElementById) { 
        return document.getElementById(id); 
    }
    else if (document.all) {  
        return document.all[id]; 
    }
    else if (document.layers) { 
        return document.layers[id]; 
    }
}
function showInfo (id) {
    if (getObj(id).style.display == 'block') {
        getObj(id).style.display = 'none';
    }
    else getObj(id).style.display = 'block';
    placeFooter ();
}
</script>
<?php
include('config.php'); 
$cat=(int)$_GET['Cat2']; 
$q mysql_query("SELECT * FROM artpage ORDER BY name") or die (mysql_error());
while (
$row mysql_fetch_array($q)) {
echo 
"";
echo 
"<a href=\"javascript:open_window('index.php?id=$row[$cat]',350,180);\">$row[1]</a>";
echo 
"<font color=red>[</font><a  href='#' onClick=\"showInfo('sh_$row[$cat]')\">>=></a><font color=red>]<br></font>\n";
?>
</td><td width="75%" height="220" valign="top">
<?php
 
echo "<div style='display:none;' id=\"sh_".$row[$cat]."\">";
$q2 mysql_query("SELECT * FROM articles WHERE id_page=$row[$cat] ORDER BY name") or die (mysql_error());
   if (
$q2 && mysql_num_rows($q2)>)
       {
  while (
$row2 mysql_fetch_assoc($q2)) 
         {     
             echo 
"<br><center>\n<table border=1 width=426>\n<tr>\n<td width=400>".$row2['name']."</td>\n</tr>\n</table>\n</center>";
         } 
       }
   else  echo 
"<center>нет товаров</center>";

echo 
"</div>";
}

?>

   
 
 автор: Apcen   (20.06.2008 в 10:32)   письмо автору
 
   для: Usta   (20.06.2008 в 00:15)
 

Usta,
в этом скрипте 2 запроса к бд а у меня 3.

   
 
 автор: Usta   (20.06.2008 в 11:48)   письмо автору
 
   для: Apcen   (20.06.2008 в 10:32)
 

Я понял что 3. только там не понятно, что куда, зачем. Я думаю что 3 скрипт ты вставишь куда нужно. Или скажи куда я вставлю.!!! Скрипт рабочий на 100% я сам проверял.

   
 
 автор: Apcen   (20.06.2008 в 12:25)   письмо автору
 
   для: Usta   (20.06.2008 в 11:48)
 

да код работающий, но при добавлении 3 ого запроса у меня при нажатии на выполнения 3ого запроса апять закрывает первые два

   
 
 автор: Usta   (20.06.2008 в 13:13)   письмо автору
 
   для: Apcen   (20.06.2008 в 12:25)
 

Вы понимаете что при нажатии на 3 запрос у вас перезапускается страница с другим параметром $_GET - переменной. И закрытие неизбежно. Нужно и 3 запрос выводить сразу а не при нажатии на ссылку.!!

   
 
 автор: Apcen   (20.06.2008 в 17:13)   письмо автору
 
   для: Usta   (20.06.2008 в 13:13)
 

подскажи пожалуйста как это можно сделать??если можно пример

   
 
 автор: Usta   (20.06.2008 в 22:57)   письмо автору
 
   для: Apcen   (20.06.2008 в 17:13)
 

>подскажи пожалуйста как это можно сделать??если можно пример
За что отвечает 3-ий запрос?? И куда его вставлять?

   
 
 автор: Apcen   (24.06.2008 в 09:41)   письмо автору
 
   для: Usta   (20.06.2008 в 22:57)
 

нет как мне сделать и 3 запрос так что бы он не закрывал первые 2 запроса

   
 
 автор: Usta   (24.06.2008 в 12:40)   письмо автору
 
   для: Usta   (20.06.2008 в 00:15)
 

1)Все что между тегами <div> текст будет появляться только когда нажмете по ссылке <a href='#' onClick=\"showInfo('sh_$row[$cat]')\">>=></a>, Без перезагрузки тк. вывод из базы происходит сразу а не по переходу через GET, это понятно.
<?php
 
echo "<div style='display:none;' id=\"sh_".$row[$cat]."\">"
.........
echo 
"</div>"

2) Следовательно размещайте запрос и выводите его сразу.
 
SELECT * FROM articles ORDER BY name -  например.

   
 
 автор: sparhok13   (30.06.2008 в 22:54)   письмо автору
 
   для: Usta   (24.06.2008 в 12:40)
 

А не могли бы Вы выложить (рабочий) код полностью...У меня такая же проблема :(

   
 
 автор: Apcen   (15.08.2008 в 11:09)   письмо автору
 
   для: Usta   (24.06.2008 в 12:40)
 

с этим код я как бы разобрался но не вышло так как мне нужно с таблицами он не ладит(
и хочет без всякой явы(
может кто-нибудь помочь уже год скоро будет как меню не сделаю (
как сделать что бы он не закрыл первые два запроса?это с сессиями нужно делать?или функции?
неужели ниукого нету примера меню 3 запросами из базы?

   
 
 автор: ONYX   (15.08.2008 в 11:34)   письмо автору
 
   для: Apcen   (15.08.2008 в 11:09)
 

А что если попробовать сохранять ид пункта меню в куках и потом открывать все совпавшие в куках номера меню при закрытии пункта менб просто удалять его оттуда

   
 
 автор: Apcen   (15.08.2008 в 11:57)   письмо автору
 
   для: ONYX   (15.08.2008 в 11:34)
 

как сохранить и как потом через него зопрос сделать?пример можно?

   
 
 автор: mihdan   (15.08.2008 в 16:34)   письмо автору
 
   для: Apcen   (15.08.2008 в 11:57)
 

Сохранить в куку setcookie('name', 'value'), получить из куки $_COOKIE['name']

   
 
 автор: Apcen   (15.08.2008 в 16:59)   письмо автору
 
   для: mihdan   (15.08.2008 в 16:34)
 

ничего не получается(((

неужели никто не знает как мне не закрывать за сабой ссылки?
вот код

<table border="1" cellpadding="0" cellspacing="0" width="100%">
<tr><td width="20%" height="50%">
<?php
include ("connect.inc");
mysql_connect($DB_HOST,$DB_USER,$DB_PASS) or die (mysql_error());
mysql_select_db($DB_NAME) or die (mysql_error());
$cat=(int)$_GET['Cat2']; //yoi id eaoaai?ee
$id=(int)$_GET['pid']; //yoi id eaoaai?ee
$result=array();
if (!empty(
$cat))
{
$result mysql_query("SELECT * FROM Cat2 WHERE Cat2=$cat  ORDER BY Namecat2");
}
$q="SELECT * FROM `cat` ORDER BY Cat";
$res=mysql_query($q);
while(
$row=mysql_fetch_array($res)) { //Cat=$row[Cat]&path=5
echo "<a href=rab.php?Cat2=$row[Cat]>$row[Name_Cat]</a><br>";
        if (
$row['Cat'] == $cat)
        {
        while(
$row2=mysql_fetch_array($result)) {                   ///Cat=$row[0]&path=1
        
echo "<a href=rab.php?pid=$row2[id]&path=5>&nbsp;$row2[Namecat2]</a><br>";
}
}
}  
?>
</td><td width="80%" height="286">
<?php
       
if ($path==5) {
     
//выбрать из БД все товары текущей подкатегории
 
$q mysql_query("SELECT * FROM Cat3 WHERE pid=$id ORDER BY NAME2") or die (mysql_error());
        
$result = array();
        
$i=0;
        while (
$row mysql_fetch_row($q)) $result[$i++] = $row;
 if (!
$i) echo "<center>&lt;пусто></center>";
 else { 
//показать товары
 
for ($i=0$i<count($result); $i++) {
 echo 
"<div align=center>".$result[$i][0]."</div>";
 };
 };
 }
?>
</td></tr></table>

при нажатии if ($path==5) закрывает меню и ставит товары по полочкам НУЖНО ЧТОБЫ ОН НЕ ЗАКРЫВАЛ ОСТАЛЬНОЕ МЕНЮ((((((
ПОЖАЛУЙСТО HELPP

   
 
 автор: sim5   (15.08.2008 в 17:11)   письмо автору
 
   для: Apcen   (15.08.2008 в 16:59)
 

Чтобы оставить открым, надо запомнить некое состояние элемента меню, признака того, что он открыт. Где они у вас в коде? У вас просто вывод списка в таблицу и более ничего.

   
 
 автор: Apcen   (18.08.2008 в 13:07)   письмо автору
 
   для: sim5   (15.08.2008 в 17:11)
 

всё уже у меня вроде всё получилось



$result = mysql_db_query($DB_NAME, "SELECT * FROM Cat3 where pid=$subcatid ORDER by NAME2") or died("Record NOT Found");

while ($db = mysql_fetch_array($result)) {
    echo"<center>$db[NAME2]</center>";
}



как вывести ошибку если в таблице нет записей ??

   
 
 автор: Trianon   (18.08.2008 в 13:18)   письмо автору
 
   для: Apcen   (18.08.2008 в 13:07)
 

if(mysql_num_rows($result) == 0)
    echo("No records");
else 
    while(...



Я не знаю что такое died(), но текст там напрашивается вовсе не Record not found а syntax error in sql request

   
 
 автор: Apcen   (18.08.2008 в 13:24)   письмо автору
 
   для: Trianon   (18.08.2008 в 13:18)
 

Большое спасибо

   
Rambler's Top100
вверх

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