 |
| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
Snesman Bénévole SV


Inscrit le: Apr 30, 2006 Messages: 1838
|
Posté le: 10 Feb 2008, 20:39 Sujet du message: Affichage de toutes les bannières [RESOLU] |
|
|
Bonjour,
J'aimerais pouvoir mettre l'affichage de toutes les bannières d'une position et activée dans une variable, pour pouvoir ensuite me servir de cette variable où je veux.
Voici le code sur lequel je bosse, il s'agit du code ads() que j'ai modifié.
| Code: | function allads() {
global $prefix, $db, $admin, $sitename, $adminmail, $nukeurl;
$numrows = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_banner WHERE position='0' AND active='1'"));
$bannum = 0;
$sql = "SELECT bid, impmade, imageurl, clickurl, alttext FROM ".$prefix."_banner WHERE position='0' AND active='1' LIMIT $numrows";
$result = $db->sql_query($sql);
list($bid, $impmade, $imageurl, $clickurl, $alttext) = $db->sql_fetchrow($result);
$bid = intval($bid);
$imageurl = filter($imageurl, "nohtml");
$clickurl = filter($clickurl, "nohtml");
$alttext = filter($alttext, "nohtml");
if($numrows > 0) {
$sql2 = "SELECT cid, imptotal, impmade, clicks, date, ad_class, ad_code, ad_width, ad_height FROM ".$prefix."_banner WHERE bid='$bid'";
$result2 = $db->sql_query($sql2);
list($cid, $imptotal, $impmade, $clicks, $date, $ad_class, $ad_code, $ad_width, $ad_height) = $db->sql_fetchrow($result2);
$cid = intval($cid);
$imptotal = intval($imptotal);
$impmade = intval($impmade);
$clicks = intval($clicks);
$ad_class = filter($ad_class, "nohtml");
$ad_width = intval($ad_width);
$ad_height = intval($ad_height);
if ($ad_class == "code") {
$ad_code = stripslashes(FixQuotes($ad_code));
$allads = "<center>$ad_code</center>";
} elseif ($ad_class == "flash") {
$allads = "<center>
<OBJECT classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"
codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0\"
WIDTH=\"$ad_width\" HEIGHT=\"$ad_height\" id=\"$bid\">
<PARAM NAME=movie VALUE=\"$imageurl\">
<PARAM NAME=quality VALUE=high>
<EMBED src=\"$imageurl\" quality=high WIDTH=\"$ad_width\" HEIGHT=\"$ad_height\"
NAME=\"$bid\" ALIGN=\"\" TYPE=\"application/x-shockwave-flash\"
PLUGINSPAGE=\"http://www.macromedia.com/go/getflashplayer\">
</EMBED>
</OBJECT>
</center>";
} else {
$allads = "<center><a href=\"index.php?op=ad_click&bid=$bid\" target=\"_blank\"><img src=\"$imageurl\" border=\"0\" alt=\"$alttext\" title=\"$alttext\"></a></center>";
}
} else {
$allads = "";
}
return $allads;
}
|
Actuellement, le code n'en affiche qu'une, mais j'aimerais qu'il m'affiche toutes les bannières, soit un total de 4 pour la position donnée et actives.
Le fait qu'il en affiche qu'une est normale puisqu'il n'exécute le script qu'une fois, donc je pense que pour toutes les avoir, il me faudrait utiliser une boucle, j'ai essayé avec while mais ça n'a rien donné, peut-être mal placé.  _________________ La liberté, le respect et le partage. Voici vos droits. Ce sont aussi des devoirs...
Dernière édition par Snesman le 12 Feb 2008, 1:18; édité 1 fois |
|
|
|
| Revenir en haut de page |
|
stefvar Administrateur


Inscrit le: Jul 06, 2005 Messages: 8183 Localisation: France Corse Ventiseri
|
Posté le: 10 Feb 2008, 21:20 Sujet du message: Re : Affichage de toutes les bannières |
|
|
Bonjour,
Je ne l'ai pas testé mais ce code devrait correspondre à tes attentes :
| Code: |
function allads() {
global $prefix, $db, $admin, $sitename, $adminmail, $nukeurl;
$numrows = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_banner WHERE position='0' AND active='1'"));
$bannum = 0;
$sql = "SELECT bid, impmade, imageurl, clickurl, alttext FROM ".$prefix."_banner WHERE position='0' AND active='1' LIMIT $numrows";
$result = $db->sql_query($sql);
list($bid, $impmade, $imageurl, $clickurl, $alttext) = $db->sql_fetchrow($result);
$bid = intval($bid);
$imageurl = filter($imageurl, "nohtml");
$clickurl = filter($clickurl, "nohtml");
$alttext = filter($alttext, "nohtml");
if($numrows > 0) {
$result2 = $db->sql_query'"SELECT cid, imptotal, impmade, clicks, date, ad_class, ad_code, ad_width, ad_height FROM ".$prefix."_banner WHERE bid='$bid'");
while ($row2 = $db->sql_fetchrow($result2)) {
$cid = intval($row2['cid']);
$imptotal = intval($row2['imptotal']);
$impmade = intval($row2['impmade']);
$clicks = intval($row2['clicks']);
$ad_class = filter($row2['ad_class'], "nohtml");
$ad_width = intval($row2['ad_width']);
$ad_height = intval($row2['ad_height']);
if ($ad_class == "code") {
$ad_code = stripslashes(FixQuotes($ad_code));
$allads = "<center>$ad_code</center>";
} elseif ($ad_class == "flash") {
$allads = "<center>
<OBJECT classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"
codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0\"
WIDTH=\"$ad_width\" HEIGHT=\"$ad_height\" id=\"$bid\">
<PARAM NAME=movie VALUE=\"$imageurl\">
<PARAM NAME=quality VALUE=high>
<EMBED src=\"$imageurl\" quality=high WIDTH=\"$ad_width\" HEIGHT=\"$ad_height\"
NAME=\"$bid\" ALIGN=\"\" TYPE=\"application/x-shockwave-flash\"
PLUGINSPAGE=\"http://www.macromedia.com/go/getflashplayer\">
</EMBED>
</OBJECT>
</center>";
} else {
$allads = "<center><a href=\"index.php?op=ad_click&bid=$bid\" target=\"_blank\"><img src=\"$imageurl\" border=\"0\" alt=\"$alttext\" title=\"$alttext\"></a></center>";
}
}
} else {
$allads = "";
}
return $allads;
}
|
_________________ Avant de poster, lire la charte du forum, merci. |
|
|
|
| Revenir en haut de page |
|
jetdesh Bénévole SV


Inscrit le: Dec 07, 2006 Messages: 876
|
Posté le: 10 Feb 2008, 23:21 Sujet du message: Re : Affichage de toutes les bannières |
|
|
Salut,
Je ne sais pas pourquoi je lis les posts de Snesman... Un doux rêve de l'aider un jour peut-être !
Enfin, si je regarde le post est déposé à 19h39.
Stefvar réponds à 20h20.
Autrement dit c'est l'heure du repas, Stefvar mange en 30 minutes (théorie et moyenne relativement raisonnable), et il pond donc un code comme cela en moins de 10 minutes... Mouais... Ok...
Si je résume, Stefvar dort peu (voire pas), mange rapidement, et ne fait que coder !!!!
J'en conclue donc que Stefvar ne doit pas être un humain et qu'on s'est tous fait avoir ! Son site est un bot !!! Nous dialoguons avec un robot depuis des années !!!!!!!
Sur ce... bonne soirée à tous les humains du site et au bot Stefvar
A+
Jet (bon ok s'est hors sujet mais j'ai tellement halluciné en voyant ça !!!) _________________ Un site pour les profs :
http://profs.123.fr |
|
|
|
| Revenir en haut de page |
|
Snesman Bénévole SV


Inscrit le: Apr 30, 2006 Messages: 1838
|
Posté le: 10 Feb 2008, 23:46 Sujet du message: Re : Affichage de toutes les bannières |
|
|
Bonjour,
Si c'est un bot, je le trouve extrèmement évolué, il va falloir faire attention à ce que la NASA ne nous le pique pas. Vous vous rendez compte, Stefvar dans l'espace ??????
Pour en revenir au sujet, désolé, Stefvar ça marche pas. J'ai remodifié le code mais sans succès.
Voici le dernier code :
| Code: | function allads() {
global $prefix, $db, $admin, $sitename, $adminmail, $nukeurl;
$sql = "SELECT * FROM ".$prefix."_banner WHERE position='0' AND active='1'";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) {
$bid = intval($row['bid']);
$imageurl = filter($row['imageurl'], "nohtml");
$clickurl = filter($row['clickurl'], "nohtml");
$alttext = filter($row['alttext'], "nohtml");
$numrows = $db->sql_numrows($db->sql_query("SELECT * FROM ".$prefix."_banner WHERE position='0' AND active='1'"));
if($numrows > 0) {
$result2 = $db->sql_query("SELECT * FROM ".$prefix."_banner WHERE bid='$bid'");
while ($row2 = $db->sql_fetchrow($result2)) {
$cid = intval($row2['cid']);
$imptotal = intval($row2['imptotal']);
$impmade = intval($row2['impmade']);
$clicks = intval($row2['clicks']);
$ad_class = filter($row2['ad_class'], "nohtml");
$ad_width = intval($row2['ad_width']);
$ad_height = intval($row2['ad_height']);
if ($ad_class == "code") {
$ad_code = stripslashes(FixQuotes($ad_code));
$allads = "<center>$ad_code</center>";
} elseif ($ad_class == "flash") {
$allads = "<center>
<OBJECT classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"
codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0\"
WIDTH=\"$ad_width\" HEIGHT=\"$ad_height\" id=\"$bid\">
<PARAM NAME=movie VALUE=\"$imageurl\">
<PARAM NAME=quality VALUE=high>
<EMBED src=\"$imageurl\" quality=high WIDTH=\"$ad_width\" HEIGHT=\"$ad_height\"
NAME=\"$bid\" ALIGN=\"\" TYPE=\"application/x-shockwave-flash\"
PLUGINSPAGE=\"http://www.macromedia.com/go/getflashplayer\">
</EMBED>
</OBJECT>
</center>";
} else {
$allads = "<center><a href=\"index.php?op=ad_click&bid=$bid\" target=\"_blank\"><img src=\"$imageurl\" border=\"0\" alt=\"$alttext\" title=\"$alttext\"></a></center>";
}
}
} else {
$allads = "";
}
return $allads;
}
}
|
Je pense que celui-ci est plus proche du résultat que le précédent, seul hic, il fonctionne pas.
jetdesh, peut-être, un jour tu pourras m'apporter une réponse, , enfin pour le moment je pense que tu pourras pas vraiment car je refonds du code à tour de bras. Cependant, je pense que tu peux en apprendre beaucoup en ne faisant que lire ce genre de post et analyser le code.
Exercice à rendre demain sans faute.  _________________ La liberté, le respect et le partage. Voici vos droits. Ce sont aussi des devoirs... |
|
|
|
| Revenir en haut de page |
|
stefvar Administrateur


Inscrit le: Jul 06, 2005 Messages: 8183 Localisation: France Corse Ventiseri
|
Posté le: 11 Feb 2008, 7:14 Sujet du message: Re : Affichage de toutes les bannières |
|
|
Bonjour,
Ne déconnez pas avec l'espace, j'ai peur en avion
Pour le code, retire juste les inval et filter . _________________ Avant de poster, lire la charte du forum, merci. |
|
|
|
| Revenir en haut de page |
|
Snesman Bénévole SV


Inscrit le: Apr 30, 2006 Messages: 1838
|
Posté le: 11 Feb 2008, 19:49 Sujet du message: Re : Affichage de toutes les bannières |
|
|
Bonjour,
J'ai enlevé mais ça fonctionne pas. Je pense que pour le moment, je vais coder en "dur" et je verrais plus tard pour l'aspect universel. _________________ La liberté, le respect et le partage. Voici vos droits. Ce sont aussi des devoirs... |
|
|
|
| Revenir en haut de page |
|
lolo Bénévole SV


Inscrit le: Jan 06, 2007 Messages: 946 Localisation: La Crau (83)
|
Posté le: 12 Feb 2008, 0:00 Sujet du message: Re : Affichage de toutes les bannières |
|
|
Voila David ma modeste contribution au fonctionnement de ton code
| Code: | function allads() {
global $prefix, $db;
$sql = "SELECT * FROM ".$prefix."_banner WHERE position='0' AND active='1'";
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result)) {
$bid = intval($row['bid']);
$numrows = $db->sql_numrows($result);
if($numrows > 0)
{
$result2 = $db->sql_query("SELECT * FROM ".$prefix."_banner WHERE bid='$bid'");
while($row2 = $db->sql_fetchrow($result2)) {
$cid = intval($row2['cid']);
$imptotal = intval($row2['imptotal']);
$impmade = intval($row2['impmade']);
$clicks = intval($row2['clicks']);
$ad_class = filter($row2['ad_class'], "nohtml");
$ad_width = intval($row2['ad_width']);
$ad_height = intval($row2['ad_height']);
$imageurl = filter($row2['imageurl'], "nohtml");
$clickurl = filter($row2['clickurl'], "nohtml");
$alttext = filter($row2['alttext'], "nohtml");
$ad_code = $row2['ad_code'];
if ($ad_class == "code") {
$ad_code = stripslashes(FixQuotes($ad_code));
$allads .= "<center>$ad_code</center><br />";
} elseif ($ad_class == "flash") {
$allads .= "<center>
<OBJECT classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\"
codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0\"
WIDTH=\"$ad_width\" HEIGHT=\"$ad_height\" id=\"$bid\">
<PARAM NAME=movie VALUE=\"$imageurl\">
<PARAM NAME=quality VALUE=high>
<EMBED src=\"$imageurl\" quality=high WIDTH=\"$ad_width\" HEIGHT=\"$ad_height\"
NAME=\"$bid\" ALIGN=\"\" TYPE=\"application/x-shockwave-flash\"
PLUGINSPAGE=\"http://www.macromedia.com/go/getflashplayer\">
</EMBED>
</OBJECT>
</center><br />";
} else {
$allads .= "<center><a href=\"index.php?op=ad_click&bid=$bid\" target=\"_blank\"><img src=\"$imageurl\" border=\"0\" alt=\"$alttext\" title=\"$alttext\"></a></center><br />";
}
}
} else {
$allads .= "";
}
}
return $allads;
}
$lolo = allads();
echo "$lolo"; |
Testé et approuvé
Pour infos vous avez oublié de declarer $ad_code = $row2['ad_code']; _________________ http://www.chez-lolo-arcade.net/arcade/index.php |
|
|
|
| Revenir en haut de page |
|
Snesman Bénévole SV


Inscrit le: Apr 30, 2006 Messages: 1838
|
Posté le: 12 Feb 2008, 1:20 Sujet du message: Re : Affichage de toutes les bannières [RESOLU] |
|
|
Bonjour,
MERCI lolo, j'avais pas pensé au point avant le =.
En tout cas ça fonctionne. pour un aperçu du résultat :
http://www.pc-dream.net
Ca se situe au niveau des bannières en haut à droite. Effet testé fonctionnel avec FF2 et IE7. _________________ La liberté, le respect et le partage. Voici vos droits. Ce sont aussi des devoirs... |
|
|
|
| Revenir en haut de page |
|
jetdesh Bénévole SV


Inscrit le: Dec 07, 2006 Messages: 876
|
Posté le: 12 Feb 2008, 8:58 Sujet du message: Re : Affichage de toutes les bannières [RESOLU] |
|
|
Salut,
Snesman ! J'adore le concept ! Mais dans une autre utilisation autre... Tu te souviens peut-être que je voulais faire des blocs avec des menus déroulants... Et bien, cela correspondrait bien à ce que je recherche.
Au lieu d'image de banières, il "suffirait" que j'insère des noms du style Forum ; Truc et Machin quant au lien... Un jeu d'enfant j'imagine.
Est-ce réalisable selon toi ?
Merci
Jet _________________ Un site pour les profs :
http://profs.123.fr |
|
|
|
| Revenir en haut de page |
|
Snesman Bénévole SV


Inscrit le: Apr 30, 2006 Messages: 1838
|
Posté le: 12 Feb 2008, 13:09 Sujet du message: Re : Affichage de toutes les bannières [RESOLU] |
|
|
Bonjour,
Oui, le script de l'effet sort d'une librairie.
http://script.aculo.us/
Donc en mettant en place la librairie, tu as accès a plein d'effet.
P.S. : Tu dis "un jeu d'enfant", ça dépend de quel enfant tu parles.  _________________ La liberté, le respect et le partage. Voici vos droits. Ce sont aussi des devoirs... |
|
|
|
| Revenir en haut de page |
|
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
|