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

Форум MySQL

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

 

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

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

тема: меню и подсчет объявлений
 
 автор: ronin   (12.09.2006 в 15:18)   письмо автору
 
 

Имееться скрипт меню на пхп

<?php
$links 
= array( 'главная' => 'index.php',
'Позиция1' => 'book.php?rubrica=1',
'Позиция1' => 'book.php?rubrica=2',
Позиция1'=> 'book.php?rubrica=3',
Позиция1'
=> 'book.php?rubrica=4',
Позиция1'=> 'book.php?rubrica=5',
Позиция1'
=> 'book.php?rubrica=6',
);
 
?>


      echo "<table  border=0 cellSpacing=0 cellPadding=0 color='#FFCC99' width='254'><tr>";
    foreach($links as $name => $url){
        if (strpos($_SERVER['PHP_SELF'], $url) == true){
        echo "<tr><td bgcolor='#cccccc' width='254' height='25' ><div class='9'>".$name."</tr></td>";
        } else {
        echo "<tr><td bgcolor='#ffffff' width='254' height='25' ><a href=".$url." target=_self><div class='8'>".$name."</div></a></tr></td>";
        }
    }
    echo "</table>";
?>

В случае нахождения на конкретной странице скрипт показывает на какой собственно ты находишься, вопрос как сделать, чтобы против позиций показывало количество объявлений

<?
include "configuration.php";
$result mysql_query("SELECT * FROM books WHERE rubrica = 2");

$num_results mysql_num_rows($result);
$books mysql_num_rows($result);
echo 
"<a href=\"book.php?rubrica=2\" ><div class='8'>C&#229;&#234;&#240;&#229;&#242;&#224;&#240;&#179; (".$num_results.")</A>";?>

как его вставить в код меню?

   
 
 автор: cheops   (12.09.2006 в 18:27)   письмо автору
 
   для: ronin   (12.09.2006 в 15:18)
 

Для формирования массива $link следует использовать следующий код
<?php 
  
include "configuration.php"
  
$query "SELECT rubrica, name, COUNT(*) AS total FROM books 
            GROUP BY rubrica ORDER BY rubrica"
  
$result mysql_query($query); 
  if(
$result) exit("Ошибка: ".mysql_error());
  if(
mysql_num_rows($result) > 0)
  {
    while(
$books mysql_fetch_array($result))
    {
      
$link[$books['name']]['link'] = 'book.php?rubrica='.$books['rubrica']; 
      
$link[$books['name']]['total'] = $books['total']; 
    }
  }
?>

Массив $link теперь двумерный, но содержит как ссылки, так и количество позиций.

PS Лучше приводить структуру таблиц в таких случаях.

   
 
 автор: ronin   (13.09.2006 в 12:08)   письмо автору
 
   для: cheops   (12.09.2006 в 18:27)
 

CREATE TABLE `books` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` text,
`rubrica` int(10) NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM ;

<?php
  
include "configuration.php";
  
$query = ("SELECT id, name, COUNT(*) AS total FROM books
            WHERE rubrica= '"
.$_GET['rubrica']."' ORDER BY id DESC ") ;
  
$result mysql_query($query);
  if(
$result) exit("&#206;&#248;&#232;&#225;&#234;&#224;: ".mysql_error());
  if(
mysql_num_rows($result) > 0)
  {
    while(
$books mysql_fetch_array($result))
    {
      
$link[$books['name']]['link'] = 'book.php?rubrica='.$books['rubrica'];
      
$link[$books['namet']]['total'] = $books['total'];
    }
  }
?>

Такой скрипт выводит ,но нет меню
'book.php?rubrica=1 Руководители, 'book.php?rubrica=2 Секретари и т.п. нужно чтобы это меню было постоянно и если посетитель на странице Секретари, то гиперссылка Секретари не работала и как то изменялась

   
 
 автор: ronin   (14.09.2006 в 10:37)   письмо автору
 
   для: ronin   (13.09.2006 в 12:08)
 

Помогите

   
 
 автор: cheops   (14.09.2006 в 13:42)   письмо автору
 
   для: ronin   (13.09.2006 в 12:08)
 

Не очень понятно, что требуется... вы как сейчас меню формируете?

   
 
 автор: ronin   (14.09.2006 в 14:30)   письмо автору
 
   для: cheops   (14.09.2006 в 13:42)
 

В том то и дело, что у меня нет меню(Меню состоит из рубрик: Руководители, Секретари и т.п. с количеством объявлений ). Мне хотелось бы, чтобы меню присутстствовало на страницах вывода, и к примеру , если открыта страница "секретари", то в меню строчка "секретари" перестает быть гипрессылкой. имеется меню

<?php 
$links 
= array( 'главная' => 'index.php'
'Позиция1' => 'name1.php'
'Позиция1' => 'name2.php'
Позиция1'=> 'name3.php', 
Позиция1'
=> 'name4.php',  
Позиция1'=> 'name5.php', 
Позиция1'
=> 'name6.php'
); 
 
?> 


      echo "<table  border=0 cellSpacing=0 cellPadding=0 color='#FFCC99' width='254'><tr>"; 
    foreach($links as $name => $url){ 
        if (strpos($_SERVER['PHP_SELF'], $url) == true){ 
        echo "<tr><td bgcolor='#cccccc' width='254' height='25' ><div class='9'>".$name."</tr></td>"; 
        } else { 
        echo "<tr><td bgcolor='#ffffff' width='254' height='25' ><a href=".$url." target=_self><div class='8'>".$name."</div></a></tr></td>"; 
        } 
    } 
    echo "</table>"; 
?> 

но я не знаю как сделать вывод одного файла, к примеру book.php с разными показателями
book.php?isbn=1 book.php?isbn=2 и если ОТКРЫТО book.php?isbn=1 то в меню, которое присутствует на каждой book.php?isbn=n гиперссылка на book.php?isbn=1 - не работала (phpself)

   
 
 автор: cheops   (14.09.2006 в 20:25)   письмо автору
 
   для: ronin   (14.09.2006 в 14:30)
 

Вместо $_SERVER['PHP_SELF'] используйте $_SERVER['REQUEST_URI'].

http://www.softtime.ru/info/articlephp.php?id_article=69

   
 
 автор: ronin   (15.09.2006 в 12:02)   письмо автору
 
   для: cheops   (14.09.2006 в 20:25)
 

Меню работает. Спасибо! Но как при этом проводить подсчет объявлений? Помогите, а то я уже все варианты пробую - замахался.

   
 
 автор: cheops   (15.09.2006 в 12:10)   письмо автору
 
   для: ronin   (15.09.2006 в 12:02)
 

Скрипт у вас должен выглядеть сейчас примерно так
<?php 
  
include "configuration.php"
  
$query = ("SELECT id, name, COUNT(*) AS total FROM books 
            WHERE rubrica= '"
.$_GET['rubrica']."' ORDER BY id DESC ") ; 
  
$result mysql_query($query); 
  if(
$result) exit("&#206;&#248;&#232;&#225;&#234;&#224;: ".mysql_error()); 
  if(
mysql_num_rows($result) > 0
  { 
    while(
$books mysql_fetch_array($result)) 
    { 
      
$link[$books['name']]['link'] = 'book.php?rubrica='.$books['rubrica']; 
      
$link[$books['name']]['total'] = $books['total']; 
    } 
  } 

  echo 
"<table  border=0 cellSpacing=0 cellPadding=0 color='#FFCC99' width='254'><tr>";  
  foreach(
$link as $name => $url){  
    if (
strpos($_SERVER['REQUEST_URI'], $url['link']) == true){  
        echo 
"<tr><td bgcolor='#cccccc' width='254' height='25' ><div class='9'>".$name."(".$url['total'].")</tr></td>";  
    } else {  
        echo 
"<tr><td bgcolor='#ffffff' width='254' height='25' ><a href=".$url['link']." target=_self><div class='8'>".$name."(".$url['total'].")</div></a></tr></td>";  
    }  
  }  
  echo 
"</table>";  
?> 

   
 
 автор: ronin   (15.09.2006 в 15:58)   письмо автору
 
   для: cheops   (15.09.2006 в 12:10)
 

У меня выдает ошибки:

Warning: Cannot use a scalar value as an array in

$link[$books['name']]['link'] = 'book.php?rubrica='.$books['rubrica'];

Warning: Invalid argument supplied for foreach() in

   
 
 автор: cheops   (15.09.2006 в 21:30)   письмо автору
 
   для: ronin   (15.09.2006 в 15:58)
 

Перед циклом добавьте строку
<?php
   $link 
= array();
?>

У вас переменная $link больше нигде не используется?

   
 
 автор: ronin   (18.09.2006 в 11:03)   письмо автору
 
   для: cheops   (15.09.2006 в 21:30)
 

не используется $link наверное тут где то ошибка:
<?php
include "configuration.php";
$query = ("SELECT id, name, rubrica, COUNT(*) AS total FROM books
WHERE rubrica= '".$_GET['rubrica']."' GROUP BY id DESC ") ;
$result = mysql_query($query);
if(!$result) exit("&#206;&#248;&#232;&#225;&#234;&#224;: ".mysql_error()); // ведь, привильно перед $result должен стоять"!"
if(mysql_num_rows($result) > 0)
{
while($books = mysql_fetch_array($result))
{
$link[$books['name']]['link'] = 'book.php?rubrica='.$books['rubrica'];
$link[$books['name']]['total'] = $books['total'];
}
}

echo "<table border=0 cellSpacing=0 cellPadding=0 color='#FFCC99' width='254'><tr>";
foreach($link as $name => $url){
if (strpos($_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'], $url['link']) == true){
echo "<tr><td bgcolor='#cccccc' width='254' height='25' ><div class='9'>".$name."(".$url['total'].")</tr></td>";
} else {
echo "<tr><td bgcolor='#ffffff' width='254' height='25' ><a href=".$url['link']." target=_self><div class='8'>".$name."(".$url['total'].")</div></a></tr></td>";
}
}
echo "</table>";

$links = array( 'главная' => 'index.php',
'Позиция1' => 'book.php?rubrica=1',
'Позиция2' => 'book.php?rubrica=2',
Позиция3'=> 'book.php?rubrica=3',
Позиция4'=> 'book.php?rubrica=4',
Позиция5'=> 'book.php?rubrica=5'
);
?>
А так, выдает
Warning: Invalid argument supplied for foreach() in

foreach($link as $name => $url){

   
 
 автор: cheops   (18.09.2006 в 11:05)   письмо автору
 
   для: ronin   (18.09.2006 в 11:03)
 

Замените блок
<?
foreach($link as $name => $url)
{
  if (
strpos($_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'], $url['link']) == true)
  {
    echo 
"<tr><td bgcolor='#cccccc' width='254' height='25' ><div class='9'>".$name."(".$url['total'].")</tr></td>";
  } else {
    echo 
"<tr><td bgcolor='#ffffff' width='254' height='25' ><a href=".$url['link']." target=_self><div class='8'>".$name."(".$url['total'].")</div></a></tr></td>";
  }
}
?>

на
<?
if(!empty($link))
foreach(
$link as $name => $url)
{
  if (
strpos($_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'], $url['link']) == true)
  {
    echo 
"<tr><td bgcolor='#cccccc' width='254' height='25' ><div class='9'>".$name."(".$url['total'].")</tr></td>";
  } else {
    echo 
"<tr><td bgcolor='#ffffff' width='254' height='25' ><a href=".$url['link']." target=_self><div class='8'>".$name."(".$url['total'].")</div></a></tr></td>";
  }
}
?>

   
 
 автор: ronin   (18.09.2006 в 11:26)   письмо автору
 
   для: cheops   (18.09.2006 в 11:05)
 

Warning: Cannot use a scalar value as an array in
Warning: Invalid argument supplied for foreach() in

   
 
 автор: ronin   (19.09.2006 в 10:42)   письмо автору
 
   для: ronin   (18.09.2006 в 11:26)
 

Помогите! Help! Hilfe! Допоможить!

   
Rambler's Top100
вверх

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