|
|
|
|
|
для: dordoy
(18.06.2008 в 16:00)
| | Можно поступить так. Выбираете в таблице данные не по порядку, а случайно ORDER BY RAND() LIMIT 1, 120. Далее:
<?
$links = file("lnk.txt");
//берем из файла одну случайную ссылку
$links = $links[rand(0,count($links)-1)];
//если в файле записи типа www.domain 10
$links = explode(" ",$links);
//число замен,
//$M равно числу выбираемых изображений из базы
$n = ($M * $links[1]) / 100;
//это массив который будет содержать замену ссылок
$random = array();
//производим замену $n ссылок, начиная с первой
while ($data = mysql_fetch_assoc($result)) {
//если не последняя замена, меняем ссылку
if ($n > 0) $data['link'] = $links[0];
$random[] = $data;
$n--;
}
//говоря словами батьки Лукашенко, перетрахиваем массив
shuffle($random);
//теперь в цикле вывести этот массив - картинки, ссылки...
?>
|
| |
|
|
|
|
|
|
|
для: sim5
(18.06.2008 в 15:44)
| | Честно говоря, ничего не понял из Вашего ответа, простите...
Если можно ввиде кода напишите
Вообще хочу выразить огромную благодарность всем кто примает участие в работе форума, здесь можно найти решение практически любой задачи.
Большое спасибо! | |
|
|
|
|
|
|
|
для: dordoy
(18.06.2008 в 14:57)
| | Вы постепенно карты свои открываете, то взять двадцать ссылок, то одна ссылка но 20%... Выберите случайно (если конечно нужно случайно) одну ссылку из вашего файла со ссылками. От 100, 30% или иное, думаю, вы знаете сколько будет, вот и заменяйте первые 30 полученных из базы ссылок на эту ссылку, а потом перемешайте это массив и уже выведите эти картинки. Если брать и из базы случайно, а не как ASC или DSC, то случайности по более будет. | |
|
|
|
|
|
|
|
для: dordoy
(18.06.2008 в 15:22)
| | Сделал
$smlink=$file[rand(0,100)];
У меня в файле было три ссылки, прописал
$smlink=$file[rand(0,2)]; - заработало!
Да оно у вас и так работало, просто какова вероятность того, что при диапазоне от 0 до 100
Вы попадете в одну из первых трех строк (где ссылки написаны). Если бы у вас было бы 100 ссылок, тогда и использовался бы диапазон 0-100. | |
|
|
|
|
|
|
|
для: dordoy
(18.06.2008 в 15:13)
| | Скорее всего у Вас в файле null.txt нет 100 записей, здесь
$smlink=$file[rand(0,100)];
|
вместо 100 укажите количество реально существующих записей | |
|
|
|
|
|
|
|
для: mihdan
(18.06.2008 в 15:17)
| | Сделал
$smlink=$file[rand(0,100)];
У меня в файле было три ссылки, прописал
$smlink=$file[rand(0,2)]; - заработало!
Большое спасибо!
Осталось реализовать реализовать вывод ссылок из файла null.php в процентном соотношении. | |
|
|
|
|
|
|
|
для: dordoy
(18.06.2008 в 15:13)
| | null.txt есть и где он лежит(должен быть рядом со скриптом)
Покажите его формат | |
|
|
|
|
|
|
|
для: mihdan
(18.06.2008 в 15:02)
| | Исправил, не читает ... | |
|
|
|
|
|
|
|
для: dordoy
(18.06.2008 в 14:57)
| |
<?
$resultat=mysql_query($zapl) or die(mysql_error());
for($i=0; $i<mysql_num_rows($resultat); $i++){
?>
|
| |
|
|
|
|
|
|
|
для: mihdan
(18.06.2008 в 14:49)
| | Исправил, без изменений не читает null.txt
<?
$zapl= "SELECT * FROM $table order by id DESC limit 0,100 " ;
$resultat=mysql_query($zapl);
for($i=0; $i<mysql_numrows($resultat); $i++){
$fv=mysql_fetch_array($resultat);
$id=$fv["id"];
$name=$fv["name"];
$pic=$fv["pic"];
if (rand(0,100)<20)
{
$file=file('null.txt');
$smlink=$file[rand(0,100)]; // случайно выбираем ссылку
} // если больше 20, то берем настоящие ссылки
else $smlink=$fv["smlink"];
?>
<a href="<? print "$smlink";?>" target="_blank"><img src="/img/<? print "$pic";?>" alt="<?=$name?>" ></a>
|
| |
|
|
|
|