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

Requêtes MySQL Discussion :

mysql_fetch_row dans une boucle for


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 33
    Points
    33
    Par défaut mysql_fetch_row dans une boucle for
    Resalut tout le monde
    J'ai encore une question, j'ai un tableau NomSite qui contient des noms de sites (comme son nom l'indique).
    Avec une boucle for, j'aimerais récupérer les id des sites et les mettre dans le tableau id_site.

    J'ai voulu utilisé cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for($i=0;$i<$nb_site_sel;$i++) {
    	$select = "select Site.id_site from Site where Site.site='$NomSite[$i]'";
    	$result = envoi_requete($select);
    	$id_site = mysql_fetch_row($result);
    }
    Les requêtes sont faites correctement sauf que je ne récupère que l'id du premier site.
    Mon problème se situe donc au niveau de "$id_site=mysql_fetch_row($result);"

    Vous voyez une solution ?
    Merci d'avance

  2. #2
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    remplace ta ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_site = mysql_fetch_row($result);
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_site[] = mysql_fetch_row($result);
    pour récupérer tes id dans un tableau.
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  3. #3
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    J'ai supprimé mon message mais en fait je maintient : mysql_fetch_row ne donne que le premier enregistrement. Pour les avoir tous il faut le mettre dans une boucle.

  4. #4
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Pas forcément vu qu'il effectue une requete à chaque instance de sa boucle et souhaite ne récupérer que l'id donc un seul élément.
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  5. #5
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Yobs
    Pas forcément vu qu'il effectue une requete à chaque instance de sa boucle et souhaite ne récupérer que l'id donc un seul élément.
    Attends j'ai ptet pas compris le problème, mais apparemment il veut tous les id...

  6. #6
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Si il les veut tous mais il fait une requete à chaque fois. Il est vrai qu'il aurait pu former qu'une requete et suivre ta méthode...
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  7. #7
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Yobs
    Si il les veut tous mais il fait une requete à chaque fois. Il est vrai qu'il aurait pu former qu'une requete et suivre ta méthode...
    oué pardon, t'as raison.
    espadon, tu obtiens n fois la première valeur ? ou juste une fois ?

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 40
    Points : 33
    Points
    33
    Par défaut
    J'obtiens une seule fois la valeur pour la première requête et elle est bonne.
    Après vous avoir lu j'ai modifié mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $temp = "";
    	for($i=0;$i<$nb_site_sel;$i++) {
    		$temp .= "Site.site='$NomSite[$i]' OR ";
    	}
    	if(ereg("OR",$temp)) {
    		$temp = substr($temp, 0,strlen($temp)-4); 
    		$select = "select Site.id_site from Site where (".$temp.") ORDER BY Site.id_site";
    		echo $select."<br>";  
    		$result = envoi_requete($select);
    		$transite = mysql_fetch_row($result);
    	}
    Ca ca marche mais qd j'essaye de récupérer les id j'ai encore la même chose.

  9. #9
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Non le premier code que je t'ai donné fonctionne comme tu le souhaite.

    Si tu veux le faire en une requete il faudra utiliser la boucle while et c'est plus de code à taper pour un résultat similaire.
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

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

Discussions similaires

  1. multi ouverture de la console dans une boucle for
    Par jamesleouf dans le forum C++
    Réponses: 2
    Dernier message: 16/03/2006, 21h26
  2. Shell - Erreur dans une boucle for
    Par claralavraie dans le forum Linux
    Réponses: 4
    Dernier message: 11/01/2006, 13h45
  3. Problème avec une DLL dans une boucle For
    Par BraDim dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2005, 12h22
  4. [batch] incrémentation dans une boucle for
    Par bart64 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 08/09/2004, 20h05
  5. Réponses: 3
    Dernier message: 06/07/2004, 10h21

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