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

Форум PHP

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

 

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

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

тема: сократить гавно код
 
 автор: TavRoX   (07.10.2010 в 04:04)   письмо автору
 
 

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

етот код делает выборку из базы id-шников тегов и новостей
следующая выборка выберает названия полученых айдишников тегов
потом еще хочу сделать чтобы была выборка от тегов к новостям. вообщем кому не сложно попробуйте уменьшить код а то моя голова уже не варит

<?php 
$post_id 
$myrownews['id'];

$poisk_id mysql_query("Select tag_id from tags_post where post_id='$post_id'");
$mypoisk_id mysql_fetch_array($poisk_id);
do {   
    
    
$idtag $mypoisk_id['tag_id'];
    
$poisk_tag mysql_query("Select tagu from tags where id='$idtag'");
$mypoisk_tag mysql_fetch_array($poisk_tag);
 
$keyword $mypoisk_tag['tagu'];
do {
   
echo   
" ".$keyword.", ";  
    
}
while (
$mypoisk_tag mysql_fetch_array($poisk_tag));

while (
$mypoisk_id mysql_fetch_array($poisk_id));
?>

  Ответить  
 
 автор: captain-america   (07.10.2010 в 09:37)   письмо автору
 
   для: TavRoX   (07.10.2010 в 04:04)
 

Используй вместо двух запросов один

$post_id = $myrownews['id'];

$poisk_tag = mysql_query("Select tagu from tags where id in(Select tag_id from tags_post where post_id='$post_id')");
$mypoisk_tag = mysql_fetch_array($poisk_tag);
 $keyword = $mypoisk_tag['tagu'];
do {
   
echo   " ".$keyword.", ";  
    
}
while ($mypoisk_tag = mysql_fetch_array($poisk_tag));


Вроде так получается, поправьте если не прав

  Ответить  
 
 автор: Дедова Шапка   (07.10.2010 в 09:44)   письмо автору
 
   для: captain-america   (07.10.2010 в 09:37)
 

Не понимаю, как можно так писать:
<? 
do { 
echo   
" ".$keyword.", ";   

while (
$mypoisk_tag mysql_fetch_array($poisk_tag));

Неужели вариант выше понятнее этого:
<? 
do 
{
    echo   
" ".$keyword.", ";   

while (
$mypoisk_tag mysql_fetch_array($poisk_tag));

Автор, если уж делать, то так:
<? 
while ($mypoisk_tag mysql_fetch_assoc($poisk_tag))
    echo   
" ".$keyword.", ";   

  Ответить  
 
 автор: oliss   (07.10.2010 в 11:09)   письмо автору
 
   для: Дедова Шапка   (07.10.2010 в 09:44)
 

$keyword=NULL;
while ($mypoisk_tag = mysql_fetch_assoc($poisk_tag)){

$keyword. = $mypoisk_tag['tagu'].', ' ;

}
echo $keyword;

  Ответить  
 
 автор: TavRoX   (07.10.2010 в 14:21)   письмо автору
 
   для: Дедова Шапка   (07.10.2010 в 09:44)
 

оо вот так хотел написать но уже башка не варила.
спасибо всем приду домой буду переделывать

  Ответить  
Rambler's Top100
вверх

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