Hasard, aléatoire et php

Fermé
cedopolice Messages postés 146 Date d'inscription jeudi 20 mars 2008 Statut Membre Dernière intervention 15 février 2011 - 4 août 2009 à 22:10
zoby44 Messages postés 818 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 - 6 août 2009 à 16:12
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!
A voir également:

10 réponses

cheese42 Messages postés 860 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 10 octobre 2018 120
5 août 2009 à 00:55
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 193 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 12 février 2017 40
6 août 2009 à 08:03
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 vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 199
6 août 2009 à 16:12
C'est vrai. Pourquoi fais simple quand on peut faire compliqué...
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
4 août 2009 à 22:26
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 samedi 17 novembre 2007 Statut Membre Dernière intervention 24 janvier 2010 6
4 août 2009 à 22:28
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 jeudi 20 mars 2008 Statut Membre Dernière intervention 15 février 2011 2
4 août 2009 à 23:59
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 jeudi 20 mars 2008 Statut Membre Dernière intervention 15 février 2011 2
5 août 2009 à 02:01
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 jeudi 20 mars 2008 Statut Membre Dernière intervention 15 février 2011 2
5 août 2009 à 23:59
Bonsoir,
Personne n'a d'idée?
0
PMax-57 Messages postés 193 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 12 février 2017 40
6 août 2009 à 00:01
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 vendredi 3 novembre 2006 Statut Membre Dernière intervention 7 avril 2010 199
6 août 2009 à 00:38
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 jeudi 20 mars 2008 Statut Membre Dernière intervention 15 février 2011 2
6 août 2009 à 16:04
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