IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

definir une image aleatoire dans une requete mysql


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut definir une image aleatoire dans une requete mysql
    Hello,

    J'ai mis en place un php qui attaque ma base mysql.
    Je passe en parametre le nom de la catégorie concernée (exemple: voitures ou camions) puis en utilisant les champs "url" et "logo", j'affiche une image avec le lien vers l'entreprise de ma base.

    J'aimerais que s'affiche de façon aléatoire un lien image (champs url+logo) d'une des entreprise de la base.

    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
     // on va scanner tous les tuples un par un  
    	$data = mysql_fetch_array($req); 
    	   $concatenation= $dir . $data[logo];
           // on affiche les résultats 
     
           echo '<h4> '.$data['nom'].''; 
    	   echo '<a href="http://'.$data['url'].' " target="_blank"><img src="'.$concatenation. '"> </a> ';
    comment puis-je rajouté ce critère aléatoire?
    Thanks

  2. #2
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Bonjour,

    Une requête qui sélectionnera les champs souhaités dans ta table.

    Ensuite, la fonction mysql_num_rows().

    Avec le résultat renvoyé par cette fonction, tu feras un rand().

    il ne te restera plus qu'à reprendre le résultat de ta requête sql et d'afficher la ligne souhaitée par le biais de mysql_fetch_array() (ou autre) après avoir lu les enregistrements se situant avant celui que tu veux afficher (par une boucle tel que for ou while).
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  3. #3
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Citation Envoyé par Deallyra Voir le message
    Bonjour,

    Une requête qui sélectionnera les champs souhaités dans ta table.

    Ensuite, la fonction mysql_num_rows().

    Avec le résultat renvoyé par cette fonction, tu feras un rand()

    il ne te restera plus qu'à reprendre le résultat de ta requête sql et d'afficher la ligne souhaitée par le biais de mysql_fetch_array() (ou autre) après avoir lu les enregistrements se situant avant celui que tu veux afficher (par une boucle tel que for ou while).
    Bonjour, ca me parait très couteux pour rien.

    Pourquoi ne pas faire un SELECT * FROM table ORDER BY RAND() LIMIT 1 ?

  4. #4
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Autant pour moi ^^

    Je ne savais pas que RAND existait pour SQL... Enfin, je ne mettais pas posée la question.

    Mais oui, tu peux (tu dois préférer) faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    mysql_query("select champ from table order by rand() limit 1");
    ?>
    A l'infâme code que j'avais fourni :3
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 227
    Points : 81
    Points
    81
    Par défaut
    Ca marche au poil!

    Cool!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 09/10/2012, 17h28
  2. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  3. Réponses: 0
    Dernier message: 07/06/2009, 12h31
  4. Réponses: 4
    Dernier message: 19/06/2008, 15h41
  5. position dans une image (selection dans une image)
    Par kaiseresis dans le forum Images
    Réponses: 3
    Dernier message: 31/05/2008, 13h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo