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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вывод подкатегорий, подскажите метод порадикальней?

Сообщения:  [1-6] 

 
 автор: mihdan   (01.07.2008 в 11:00)   письмо автору
 
   для: cree   (24.03.2008 в 23:20)
 

Извините, но вы неправы:

<?
$str 
123456789789;
echo (int)
$str;
?>


Что выводит?

   
 
 автор: sparhok13   (01.07.2008 в 10:38)   письмо автору
 
   для: cree   (24.03.2008 в 23:20)
 

А какой запрос нужно писать что-бы контент выводился так как нужно ??

   
 
 автор: cree   (24.03.2008 в 23:20)   письмо автору
 
   для: Usta   (24.03.2008 в 00:29)
 

Вот зачем использовать для приведения полученной переменной к числу череж ж..пу (прошу прощения), то бишь через регулярки?
лучше уж так:

$_GET['id_page'] = empty($_GET['id_page']) ? 0 : (int) $_GET['id_page'];

или, кому данный пример сложен:

$_GET['id_page'] = (int) @$_GET['id_page'];

   
 
 автор: Usta   (24.03.2008 в 00:29)   письмо автору
 
   для: Atheist   (23.03.2008 в 11:26)
 

Спасибо за mysql_fetch_assoc() почитал в книжке, это проще.

А что касается:
>> "SELECT id_article,name FROM articles WHERE id_page=".$_GET['id_page']." AND hide = 'show' "
>Уязвимость (попробуй найти сам).
>
>> <a href=index.php?id_page=".$_GET['id_page']."
>Другая уязвимость (попробуй найти сам).

Тут наверное нужно написать

if(isset($_GET['id_page'])) $page = $_GET['id_page'];  
if (!preg_match("|^[\d]+$|", $id_page))   { exit ("<p>Неверный формат запроса! Проверьте URL!");   }

--- ---
 WHERE id_page=$page AND hide = 'show'

-----
и тоже самое <a href=index.php?id_page=$id_page;

   
 
 автор: Atheist   (23.03.2008 в 11:26)   письмо автору
 
   для: Usta   (23.03.2008 в 05:48)
 

> if(mysql_num_rows($ctg)>0)
Эта проверка тут не нужна.

> $catig = mysql_fetch_array($ctg)
Используй mysql_fetch_assoc.

> "SELECT id_article,name FROM articles WHERE id_page=".$_GET['id_page']." AND hide = 'show' "
Уязвимость (попробуй найти сам).

> <a href=index.php?id_page=".$_GET['id_page']."
Другая уязвимость (попробуй найти сам).

В целом, стоит еще посмотреть везде ли стоят индексы, где надо. А так больше особо в скорости не выиграешь. Если только заменить два запроса на один многотабличный. Но не уверен, что скорость от этого как-то заметно изменится.

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

   
 
 автор: Usta   (23.03.2008 в 05:48)   письмо автору
 
 

1) Подскажите как можно этот код сжать, или тут идет нормальный запрос от БД? В принципе грузит он не так уж и медленно, но на локальном хосте скорость одна, а в инете будит другая.

    <?
  
// Выводим группы категорий
  
$query "SELECT id_artpage,name FROM artpage WHERE hide = 'show' ";
  
$ctg mysql_query($query);
  if (!
$ctgputerror("Ошибка при обращении к Выводом меню");
  if(
mysql_num_rows($ctg)>0)
  {
    while(
$catig mysql_fetch_array($ctg))
    {
      echo 
"\n<div class='doljn' id='sot'><a href=index.php?id_page=".$catig['id_artpage'].">".$catig['name']."</a></div>\n";
      
////// ВЫВОДИМ ПОДМЕНЮ 
      
if ($_GET['id_page'] == $catig['id_artpage']) 
         { 
  
$query1 "SELECT id_article,name FROM articles
            WHERE id_page="
.$_GET['id_page']."
            AND hide = 'show' "
;
  
$ctg1 mysql_query($query1);
//  if( mysql_num_rows($ctg) >0 )
  
{
    while(
$cat mysql_fetch_array($ctg1))
    { 
      echo 
"\t<div class='pid'><a href=index.php?id_page=".$_GET['id_page']."&id_article=".$cat['id_article'].">".$cat['name']."</a></div>\n ";
    } 
// Конец цикла while
  
// Конец if(mysql_num_rows($ctg)>0)
         

      
//////////////////////////
      // КОНЕЦ ВЫЫОДА ПОДМЕНЮ
    
}
  }
?>

   

Сообщения:  [1-6] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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