Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> WYbranie losowej liczby
sajborg
post 9.04.2004, 08:42:49
Post #1





Grupa: Zarejestrowani
Postów: 271
Pomógł: 0
Dołączył: 20.08.2003
Skąd: Szczecinek

Ostrzeżenie: (0%)
-----


Siemka zrobilem sobie takie rotator banerów

[php:1:8f2a22e3e7]<?php
$sql="SELECT * FROM homp_baner";
$result=$db->sql_query($sql);
$ile=0;
$res2=$db->sql_fetchrow($result);
$od=$res2['baner_id'];
while ($res=$db->sql_fetchrow($result)){
$ile=$res['baner_id'];
}
function baner ($typ){
global $db,$ile,$od;
$losowy=rand($od,$ile);
$sql="SELECT * FROM homp_baner WHERE baner_id='".$losowy."' AND baner_rozm='".$typ."'";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Nie mogę wyswietlić Banera.", "", __LINE__, __FILE__, $sql);
}
$baner=$db->sql_fetchrow($result);
if ($baner['baner_show']==$baner['baner_max_show']){
baner($typ);
}else{
if ($baner['baner_typ']=='FLASH'){
echo $baner['baner_flash'];
$sql="UPDATE homp_baner SET baner_show=baner_show+1 WHERE baner_id='".$losowy."'";
$db->sql_query($sql);
}else{
echo '<a href="'.$baner['baner_url'].'" target=_top><img src="'.$baner['baner_img'].'" border="0" alt="'.$baner['baner_alt'].'" width="400" height="50"></a>';
$sql="UPDATE homp_baner SET baner_show=baner_show+1 WHERE baner_id='".$losowy."'";
$db->sql_query($sql);
}
}
}

?>[/php:1:8f2a22e3e7]
Ale u mnie nie zdaje egzaminu :)Poniewą najpierw losuje liczbe a potem dopiero pobieram baner.I jesli wylosowana loczba nie spełnia kryteriów baner nie zostaje pokazany.Chciałem to zrobic inaczej mianowicie.Pobieram wszystko idy banerów które spełniają kryterium a potem z tych liczba losuje jakąś.Ale nie wiem jak wylosowąc jakąś liczbe z kilkunastu podanych sad.gif


--------------------
Warsztat: gPHPEdit | Linux 2.6.17-11-generic (Ubuntu)
Sprzęt: Noteook BenQ A33E
___________________________________________________
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Jojo
post 9.04.2004, 08:50:36
Post #2





Grupa: Zarejestrowani
Postów: 405
Pomógł: 1
Dołączył: 19.09.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Sprobuj pobrac ID bannerow spelniajacych kryteria do jakiejs tablicy a potem mozesz uzyc funkcji [manual:5a6dae6cda]array_rand[/manual:5a6dae6cda].
Go to the top of the page
+Quote Post
sajborg
post 9.04.2004, 09:44:32
Post #3





Grupa: Zarejestrowani
Postów: 271
Pomógł: 0
Dołączył: 20.08.2003
Skąd: Szczecinek

Ostrzeżenie: (0%)
-----


Kurde coś mi nie gra mam tak

[php:1:7003eff862]<?php
function baner ($typ){
global $db;
$id=array();
$sql="SELECT * FROM homp_baner WHERE baner_rozm=".$typ."";
$result=$db->sql_query($sql);
while ($idy=$db->sql_fetchrow($result)){
$id[]=$idy['baner_id'];
}
$losowy=array_rand($id,1);
$sql="SELECT * FROM homp_baner WHERE baner_id='".$losowy."' AND baner_rozm='".$typ."'";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Nie mogę wyswietlić Banera.", "", __LINE__, __FILE__, $sql);
}
$baner=$db->sql_fetchrow($result);
if ($baner['baner_show']==$baner['baner_max_show']){

}else{
if ($baner['baner_typ']=='FLASH'){
echo $baner['baner_flash'];
$sql="UPDATE homp_baner SET baner_show=baner_show+1 WHERE baner_id='".$losowy."'";
$db->sql_query($sql);
}else{
echo '<a href="'.$baner['baner_url'].'" target=_top><img src="'.$baner['baner_img'].'" border="0" alt="'.$baner['baner_alt'].'" width="400" height="50"></a>';
$sql="UPDATE homp_baner SET baner_show=baner_show+1 WHERE baner_id='".$losowy."'";
$db->sql_query($sql);
}
}
}
?>[/php:1:7003eff862]

I pokazuje mi sie taki błąd

Kod
Warning: array_rand() [function.array-rand]: Second argument has to be between 1 and the number of elements in the array in g:wwwphpbb.netfunction.php on line 10


--------------------
Warsztat: gPHPEdit | Linux 2.6.17-11-generic (Ubuntu)
Sprzęt: Noteook BenQ A33E
___________________________________________________
Go to the top of the page
+Quote Post
kszychu
post 9.04.2004, 09:50:38
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


Wygląda na to, że z jakichś powodów tablica $id jest pusta... Wyświetl ją sobie i zobacz jak wygląda (print_r($id)).


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
sajborg
post 9.04.2004, 14:21:19
Post #5





Grupa: Zarejestrowani
Postów: 271
Pomógł: 0
Dołączył: 20.08.2003
Skąd: Szczecinek

Ostrzeżenie: (0%)
-----


Ok juz zrobilem ale nie losuje mi idów cały czas jest taki sam :[


--------------------
Warsztat: gPHPEdit | Linux 2.6.17-11-generic (Ubuntu)
Sprzęt: Noteook BenQ A33E
___________________________________________________
Go to the top of the page
+Quote Post
kszychu
post 9.04.2004, 14:25:34
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


Cytat
Nie zapomnij wywołać srand() aby zainicjować ziarno generatora liczb pseudolosowych.


Czytaj manual, będziesz wielki...


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
sajborg
post 9.04.2004, 14:29:13
Post #7





Grupa: Zarejestrowani
Postów: 271
Pomógł: 0
Dołączył: 20.08.2003
Skąd: Szczecinek

Ostrzeżenie: (0%)
-----


Wiem wiem :] Wlasnie to przeczytałem :] Thx


--------------------
Warsztat: gPHPEdit | Linux 2.6.17-11-generic (Ubuntu)
Sprzęt: Noteook BenQ A33E
___________________________________________________
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 02:33