Hasard, aléatoire et php

cedopolice Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   -  
zoby44 Messages postés 818 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Sur quelle piste dois-je me tourner pour trouver des scripts ou tutos afin de faire une petite boite à la fin d'un article qui afficherais:

A lire aussi:
Lien x
Lien x
Lien x

Et qui changerai à chaque rafraichissement de la page, et que les liens vers les autres articles soient tirés d'une page à part (txt, php...)

Merci de votre aide!

10 réponses

cheese42 Messages postés 860 Date d'inscription   Statut Membre Dernière intervention   120
 
salut, au cas ou, j'ai ce script qui affiche des bannieres au hasard parmis les 4 proposes a chaque fois que la page est actualisee, si ca peut t'aider un peu, voici le script ^^


<script language="javascript">
<!--
var nombre = 4;
var temps = new Date()
var seconde = temps.getSeconds()
var banniere = seconde % nombre;
banniere +=1;
if (banniere==1) {
url="http://www.site1.com";
alt="site1";
banner="http://www.ban1.jpg";
width="468";
height="60";
}
if (banniere==2) {
url="https://www.site2.com/";
alt="site2";
banner="http://www.ban2.gif";
width="468";
height="60";
}
if (banniere==3) {
url="http://www.site3.com";
alt="site3";
banner="http://www.ban3.gif";
width="468";
height="60";
}
if (banniere==4) {
url="http://www.site4.com";
alt="site4";
banner="http://www.ban4.gif";
width="468";
height="60";
}
document.write('<a href=\"'+url+'\" target=\"_blank\">');
document.write('<img src=\"'+banner+'\" width=')
document.write(width+'height='+height+'');
document.write('alt=\"'+alt+'\" border=0></a>');
//-->
</script>

@++.......
2
PMax-57 Messages postés 195 Date d'inscription   Statut Membre Dernière intervention   40
 
Salut,

Pas forcément si on indique à php de trouver autre chose si la ligne est vide :

$dernierid = mysql_query('SELECT id FROM portfolio ORDER BY id DESC LIMIT 0,1'); //On récupère le dernier ID enregistré dans la BDD.

$idaleat = rand(1, $dernierid); //On récupère un nombre au hasard entre 1 et le nombre max d'ID.
@$req = mysql_query('SELECT * FROM portfolio WHERE id = \'idaleat\' ') ; //Récupération de la requete

if (@mysql_num_rows($req)>0){ //Si la ligne existe...
			@$rep = mysql_fetch_object($req); //...On récupère les infos avec REP
}

Sinon il ne se passe rien !
Bien entendu, avec un joli croisement entre ce code et un petit "while", on devrait arriver à créer une belle boucle qui relancera la requette tant que la ligne est vide.



bonne journée à tous !



1
zoby44 Messages postés 818 Date d'inscription   Statut Membre Dernière intervention   199
 
C'est vrai. Pourquoi fais simple quand on peut faire compliqué...
0
lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
 
la fonction rand qui peut tegenerer un nombre aleatoire et meme borné entre une valeur mini et maxi

le resultat correspondra aux id de tes liens ( bien sur il faut que tes lien aient un id..

http://www.manuelphp.com/php/function.rand.php
0
leto23 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   6
 
Salut,

pour le aléatoire utilise la fonction php rand(min, max)
Elle choisie un nombre entre min et max inclues.

Après pour tes liens, tu peut te servir d'une base de donner contenant X liens numéroté de 1 a X et quand tu charge ta page, tu fais 3 rand(1, X) successif, qui te donne 3 chiffres ou chaque chiffre correspond a un lien différent...c'est a mon avis la technique la plus simple a réaliser (mas pas forcement la plus optimisé lol)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cedopolice Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci messieurs,
Je comprends rien à ce que vous dites mais je vais faire des recherches et étudier le lien avec vos infos.

Je suis un vrai débutant, alors, si vous avez quelque chose de simple, n'hésitez pas!
Merci!
0
cedopolice Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   2
 
merci aussi pour ton aide, mais je penchais plutôt pour une solution en php, que pensez vous de cette solution (qui marche) à propos de la securite, le referencement (car les liens changeront souvent)?:

<?php
$pages = array('1.php', '2.php', '3.php', '4.php', );
$page = array_rand($pages);
if (file_exists($pages[$page])) { 
    include($pages[$page]);
}
?>


Et dans chaque page (1.php, 2.php....) les liens à inserer aléatoirement.
0
cedopolice Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   2
 
Bonsoir,
Personne n'a d'idée?
0
PMax-57 Messages postés 195 Date d'inscription   Statut Membre Dernière intervention   40
 
Salut

Pour générer une variable aléatoire, rien de mieux que la fonction rand()

exemple :
echo rand(5, 15);
// Affiche un chiffre entre 5 et 15.

De là, tu peux utiliser ce chiffre pour chercher des ID dans ta base SQL
Tu combines quoi ...

bonne chance

0
zoby44 Messages postés 818 Date d'inscription   Statut Membre Dernière intervention   199
 
Salut. A mon avis, c'est un peu risqué d'utiliser la fonction rand() de php. Si un article a été supprimé et que le chiffre tiré est celui de cet article, il risque d'y avoir une belle erreur.
A ta place, si tu utilises une base de données, utilise plutôt la fonction rand() de mysql.
$sql = 'SELECT * FROM articles ORDER BY RAND() LIMIT 1';

0
cedopolice Messages postés 146 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci pour vos réponses, mais je ne connais pas assez le mysql pour le momment.

Cette solution marche, et je voulais savoir ce que vous en pensiez de façon générale et sécurité, s'il faut améliorer...

<?php
$pages = array('1.php', '2.php', '3.php', '4.php', );
$page = array_rand($pages);
if (file_exists($pages[$page])) { 
    include($pages[$page]);
}
?>


les pages 1.php, 2.php contiennent les liens à inclure aléatoirement.

Merci!
0