X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Помощь по Php
MeTaTRoN
MeTaTRoN
Topic Starter сообщение 1.11.2009, 20:58; Ответить: MeTaTRoN
Сообщение #1


Завсегдатай
*****

Группа: Active User
Сообщений: 511
Регистрация: 1.9.2008
Из: Таллинн Эстония
Поблагодарили: 63 раза
Репутация:   18  


Вот код:
<?php
function dle_img ()
{
    global $db;
    $result = $db->query("SELECT id,title FROM dle_post");
    while ($row2 = $db->get_row($result)){
         $title_id[$row2['id']] = stripslashes($row2['title']);
    }
    $result = $db->query("SELECT * FROM dle_images ORDER BY RAND()  LIMIT 10");
$imgar = array ();
while ($row = $db->get_row($result)){
  $images = $row['images'];
  if (in_array($images, $imgar)) continue;
  $imgar[] = $row['images'];
  $images = explode("|||",$images);
  $images = $images[0];
if (file_exists(ROOT_DIR."/uploads/posts/".$images))
      { $file_dir = "posts"; }
  else
      { $file_dir = "files"; }
$title = substr($title_id[$row['news_id']],0,25)."...";
$out .="<table align=\"center\"><tr><td align=\"center\">

<table cellpadding=\"0\" cellspacing=\"0\" style=\"margin-right:10px\" height=\"135\">
<tr>
<font face=\"arial\" size=\"1\" color=\"#000000\">{$title}</font></cetner></b></td>
</tr>
<td style=\"background-color:#000000\">
<div style=\"height:2px\"></div>
<a href=\"/index.php?newsid={$row['news_id']}\">
<img border=\"0\" src=\"/uploads/".$file_dir."/{$images}\" width=\"150\" height=\"95\" title=\"{$title}\"></td>
</td>
</table>
<p><p><p>
</a></td></tr></table>";
}
return $out;
}
$dle_img = dle_img ();
?>

Как сделать, так что бы эта функция вызывалась 2 переменными, но, что значения их не повторялись?


--------------------
Программист: PHP, JavaScript, HTML5, HTML5 canvas, CSS, AJAX, jquery, SQL.
Реклама на аниме сайте
Услуги программиста, тема на форуме
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kronos
kronos
сообщение 1.11.2009, 23:01; Ответить: kronos
Сообщение #2


Белый веб-мастер
*******


Группа: Active User
Сообщений: 4703
Регистрация: 10.2.2009
Из: Харьков
Поблагодарили: 2629 раз
Репутация:   327  


Не понял вопроса


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MeTaTRoN
MeTaTRoN
Topic Starter сообщение 1.11.2009, 23:49; Ответить: MeTaTRoN
Сообщение #3


Завсегдатай
*****

Группа: Active User
Сообщений: 511
Регистрация: 1.9.2008
Из: Таллинн Эстония
Поблагодарили: 63 раза
Репутация:   18  


нужно, что бы 2 переменные выводили функцию dle_img
Но что бы значения в них не повторялись


--------------------
Программист: PHP, JavaScript, HTML5, HTML5 canvas, CSS, AJAX, jquery, SQL.
Реклама на аниме сайте
Услуги программиста, тема на форуме
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
LaeX
LaeX
сообщение 1.11.2009, 23:56; Ответить: LaeX
Сообщение #4


Участник
***

Группа: User
Сообщений: 163
Регистрация: 2.10.2009
Поблагодарили: 81 раз
Репутация:   25  


Попробуйте, сделать так чтобы функция возвращала массив и двух элементов, которые записываются в $out, повторений быть не должно, т.к. функция будет вызываться раз.


--------------------
ICQpix — лучшие информеры ICQ статуса
Ѡ VDS за $2.99 (реф.) → 512/1024MB RAM, 50 GB HDD, полноценный SWAP
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MeTaTRoN
MeTaTRoN
Topic Starter сообщение 2.11.2009, 0:42; Ответить: MeTaTRoN
Сообщение #5


Завсегдатай
*****

Группа: Active User
Сообщений: 511
Регистрация: 1.9.2008
Из: Таллинн Эстония
Поблагодарили: 63 раза
Репутация:   18  


а не мог бы ты написать как бы это выглядело?


--------------------
Программист: PHP, JavaScript, HTML5, HTML5 canvas, CSS, AJAX, jquery, SQL.
Реклама на аниме сайте
Услуги программиста, тема на форуме
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
LaeX
LaeX
сообщение 2.11.2009, 0:54; Ответить: LaeX
Сообщение #6


Участник
***

Группа: User
Сообщений: 163
Регистрация: 2.10.2009
Поблагодарили: 81 раз
Репутация:   25  


Вроде бы так smile.gif

<?php
function dle_img () {
    global $db;
    
    $arr_Out = array();
    $result = $db->query("SELECT id,title FROM dle_post");
    while ($row2 = $db->get_row($result)) {
        $title_id[$row2['id']] = stripslashes($row2['title']);
    }
    
    $result = $db->query("SELECT * FROM dle_images ORDER BY RAND()  LIMIT 20");
    $imgar = array ();
    
    $i = 1;
    while ($row = $db->get_row($result)) {
        $images = $row['images'];
        if (in_array($images, $imgar)) continue;
        $imgar[] = $row['images'];
        $images = explode("|||",$images);
        $images = $images[0];
        if (file_exists(ROOT_DIR."/uploads/posts/".$images)) {$file_dir = "posts";}
        else {$file_dir = "files";}

        $title = substr($title_id[$row['news_id']],0,25)."...";
        $out .= "<table align=\"center\"><tr><td align=\"center\">
        <table cellpadding=\"0\" cellspacing=\"0\" style=\"margin-right:10px\" height=\"135\">
        <tr>
        <font face=\"arial\" size=\"1\" color=\"#000000\">{$title}</font></cetner></b></td>
        </tr>
        <td style=\"background-color:#000000\">
        <div style=\"height:2px\"></div>
        <a href=\"/index.php?newsid={$row['news_id']}\">
        <img border=\"0\" src=\"/uploads/".$file_dir."/{$images}\" width=\"150\" height=\"95\" title=\"{$title}\"></td>
        </td>
        </table>
        <p><p><p>
        </a></td></tr></table>";
        if($i == 10) {$arr_Out[] = $out; $out = '';}
        $i++;
    }
    return $arr_Out;
}

$dle_img = dle_img();
echo $dle_img[0];
echo $dle_img[1];
?>


Сообщение отредактировал LaeX - 2.11.2009, 0:55


--------------------
ICQpix — лучшие информеры ICQ статуса
Ѡ VDS за $2.99 (реф.) → 512/1024MB RAM, 50 GB HDD, полноценный SWAP
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MeTaTRoN
MeTaTRoN
Topic Starter сообщение 2.11.2009, 1:56; Ответить: MeTaTRoN
Сообщение #7


Завсегдатай
*****

Группа: Active User
Сообщений: 511
Регистрация: 1.9.2008
Из: Таллинн Эстония
Поблагодарили: 63 раза
Репутация:   18  


что то не то, весь сайт летит


--------------------
Программист: PHP, JavaScript, HTML5, HTML5 canvas, CSS, AJAX, jquery, SQL.
Реклама на аниме сайте
Услуги программиста, тема на форуме
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
LaeX
LaeX
сообщение 2.11.2009, 1:57; Ответить: LaeX
Сообщение #8


Участник
***

Группа: User
Сообщений: 163
Регистрация: 2.10.2009
Поблагодарили: 81 раз
Репутация:   25  


Хм.. возможно, если эта функция используется еще где-то. Скопируйте эту функцию и переименуйте ее, а та dle_img() пусть остается не измененной.

Сообщение отредактировал LaeX - 2.11.2009, 1:59


--------------------
ICQpix — лучшие информеры ICQ статуса
Ѡ VDS за $2.99 (реф.) → 512/1024MB RAM, 50 GB HDD, полноценный SWAP
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
MeTaTRoN
MeTaTRoN
Topic Starter сообщение 2.11.2009, 2:21; Ответить: MeTaTRoN
Сообщение #9


Завсегдатай
*****

Группа: Active User
Сообщений: 511
Регистрация: 1.9.2008
Из: Таллинн Эстония
Поблагодарили: 63 раза
Репутация:   18  


нет, она 1, это точно


--------------------
Программист: PHP, JavaScript, HTML5, HTML5 canvas, CSS, AJAX, jquery, SQL.
Реклама на аниме сайте
Услуги программиста, тема на форуме
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
freesoccer
freesoccer
сообщение 4.11.2009, 15:33; Ответить: freesoccer
Сообщение #10


Участник
***

Группа: User
Сообщений: 114
Регистрация: 23.8.2009
Из: Минск
Поблагодарили: 41 раз
Репутация:   8  


MeTaTRoN, а сколько записей всего в dle_post? По идее если записей меньше 10, то они изменяться не будут, когда будет больше 10, тогда должно заработать.
PS - имхо конечно, но первый запрос "тяжелый", когда будет пару сотен постов функция начнет подвешивать серв. Было бы логичнее первым запросом тянуть 10 случайных записей первым запросом:
$result = $db->query("SELECT id,title FROM dle_post ORDER BY RAND() LIMIT 10");

а потом для того, что получится тянуть картинки либо отдельными запросами через id, либо составить 1 сложный запрос и вытянуть все из 2-х таблиц. MySQL не боится большого числа запросов, гораздо страшнее объемы данных, которые вынимаются в результате, поэтому советую переписать первый запрос функции.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Веб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
18 qpPeW 3353 Вчера, 13:32
автор: qpPeW
Открытая тема (нет новых ответов) Нужна помощь в активации аккаунта AdSense
8 dimaguru 2287 11.12.2017, 17:43
автор: RICHHost
Открытая тема (нет новых ответов) php скрипты любой сложности / диз+верстка (адаптивно)
любые задачи на php - автоматизация, парсинг, работа с БД
1 affrodita 491 8.12.2017, 17:40
автор: affrodita
Открытая тема (нет новых ответов) Нужна помощь с задачами по SEO
Звучит так себе конечно, однако очень нужна ваша помощь!!!
10 another_way 1472 25.11.2017, 13:35
автор: Bel_Ami
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыImage Optimizer (PHP)
6 bars96 906 17.11.2017, 0:47
автор: bars96


 



RSS Текстовая версия Сейчас: 13.12.2017, 8:05
Дизайн