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

PHP & Base de données Discussion :

Afficher le premier résultat d'une requête


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Afficher le premier résultat d'une requête
    Bonjour,

    J'ai développé une requête SQL et je souhaiterais pouvoir afficher uniquement le résultat sélectionné par mon script php.

    Voici mon script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <html>
    <body>
    <?php
     
    $connexion=mysql_connect("localhost", "*****", "*****");
    if (!$connexion) {
    	echo "La connexion au serveur a échouée<br>";
    	exit;
    }
    if(!mysql_select_db("*****", $connexion)) {
    	echo "La connexion à la base de données à échouée<br>";
    	exit;
    }
     
    $sql=	"select  titre, affiche, nomacteur, nomdistributeur, anneesortie
    		from films, acteurs, distributeurs
    		where films.numfilm=acteurs.numacteur
    		and films.numdistributeur=distributeurs.numdistributeur";
     
    $interrogation=mysql_query($sql,$connexion);
    mysql_close($connexion);
     
    if ($interrogation) {
    	echo "<table cellpadding='5' cellspacing='45' border='5'>"
    	."<tr><th></th></tr>";
    	while ($ligne=mysql_fetch_array($interrogation, MYSQL_NUM))
    		echo "<tr><td>".$ligne[0]."</td></tr>";
     
    }
    else echo "La base de données ne renvoit aucune réponse"; 
     
    ?>
    </body>
    </html>
    Par exemple içi, je souhaitais n'afficher que le premier résultat de ma reqûete (1ère ligne), hors, j'obtiens la liste de tous les films sans affiche, nomacteur, nomdistributeur et anneesortie. J'obtiens donc la première colonne de ma requête et non la première ligne.

    Quelqun pourrait t'il m'indiquer comment résoudre mon problème ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est quoi "le resultat défini par ton script" ?

    Si tu ne veux qu'une ligne, met un LIMIT 1.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par sabotage Voir le message

    C'est quoi "le resultat défini par ton script" ?.
    En fait c'est le résultat de ma reqûete SQL mais pas dans sa globalité, seulement la ligne qui m'intéresse.

    Citation Envoyé par sabotage Voir le message
    Si tu ne veux qu'une ligne, met un LIMIT 1

    Je souhaiterais aussi pouvoir n'afficher que la troisième ligne, par exemple, de ce que me renvoit la requête, pas nécessairement la première. En réalite, je souhaiterais pouvoir ensuite effectuer des traitements sur chacun des résultats de ma requête, et donc j'essai d'obtenir des lignes indicées.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    LIMIT 2,1 pour la troisième ligne retournée.

  5. #5
    Membre régulier Avatar de Billy KiT
    Inscrit en
    Mars 2011
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 66
    Points : 73
    Points
    73
    Par défaut
    Salut,
    déjà pour avoir la ligne entiere, tu peux utiliser CONCAT_WS qui "concatène" les champs d'une ligne avec séparateur (1 ou plusieurs caractères)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CONCAT_WS(';',titre, affiche, nomacteur, nomdistributeur, anneesortie) AS ligne FROM films, acteurs, distributeurs ...
    ensuite pour parcourir les résultats :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for ($i=0;$i<mysql_num_rows($interrogation);$i++)
    $ligne[$i] = mysql_result($interrogation,$i,"ligne");
    $i étant l'index ou le numéro de la ligne. Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $deuxieme_ligne = mysql_result($interrogation,1,"ligne");
    En espérant avoir bien compris le problème

  6. #6
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    http://php.net/manual/fr/function.mysql-fetch-array.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Impossible de se connecter : " . mysql_error());
    mysql_select_db("mydb");
     
    $result = mysql_query("SELECT id, name FROM mytable");
     
    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
       printf("ID : %s  Nom : %s", $row[0], $row[1]); // ici $row représente une ligne de ta requête à chaque passage dans le while.
    }
     
    mysql_free_result($result);
    ?>
    ici $row représente une ligne de ta requête à chaque passage dans le while.

    De plus, les fonctions mysql_* ne sont plus conseillées. Le mieux est de passé à mysqli_* ou encore mieux, via un PDO.

Discussions similaires

  1. [WD15] Afficher le premier résultat d'une table dans une requête
    Par bestmoroco dans le forum WinDev
    Réponses: 3
    Dernier message: 20/01/2015, 00h26
  2. [AC-2003] 10 premiers résultats d'une requête
    Par PAUL87 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 21/11/2011, 18h53
  3. Réponses: 14
    Dernier message: 10/01/2011, 15h57
  4. Réponses: 2
    Dernier message: 17/11/2010, 19h55
  5. Réponses: 5
    Dernier message: 14/06/2006, 15h19

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