begin process at 2012 05 31 13:46:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Recuperer requete avec jointure


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Recuperer requete avec jointure

jeudi 25 octobre 2007 à 12:15:24 | Recuperer requete avec jointure

agparchitecture

Bonjour, dans le cadre du dévellopement de mon site internet je vient de rencontrer un problème et j'espère que vous pourrez m'aider.

J'ai trois tables:
1: Contient les utilistateurs (nom, id, et mot de pass)
2: Contient des projet en cours (id projet, nom, dossier)
3: Contient la liaisons entre les utilisateurs et les projet.

J'effectue la requete suivante:

 $requete = 'SELECT * FROM USERS
    LEFT JOIN APPARTIENT ON users.idUsers = appartient.AppidUsers
    LEFT JOIN PROJET ON test = idProj
    ORDER BY idUsers, libelle';

Jusque la ca fonctionne je récupère bien ce que je veux.

Ensuite je traite le résultat de la manière suivante:

$resultat = mysql_query($requete);
$nlignes = mysql_num_rows($resultat);
 //print_r ($nlignes);  // -> Compte le bon nombre de ligne OK

 for ($i=0 ; $i < $nlignes ; $i++) // --> retourne tous les tableau de la selection
     {
       $ligne2 = mysql_fetch_array($resultat, $i); //-> recupère le tableau des données pour 1 utilisateur:
      //print_r ($ligne2);
  
     $essais = count($ligne2); //Problème: tableau deux fois trop grand............
  
     for ($j=0; $j < $essais/2 ; $j++)
      {
// Pour traitement des données du tableau. pour afficher les données
      }

  }

Le problème vient que le nombre d'élement est de 10 et il m'en compte 20 parce que il récupère un array du type:

array (
[0]=>1
[idusers]=>1
[1] =>test
[nom]=>test
)
alors que en fait le 0 et id users sont identique. Il me double mon tableau a chaque fois avec les nom des champ et un index incrémanté.

A votre avis d'ou peux bien provenir le problème.

Merci de votre aide.

jeudi 25 octobre 2007 à 18:45:36 | Re : Recuperer requete avec jointure

malalam

Administrateur CodeS-SourceS
Réponse acceptée !
Hello,

tu utilises mal les fonctions mysql_*.
D'abord, faire une boucle avec le num_rows est inutile.
Ensuite, mysql_fetch_array() renvoie par défaut le jeu de résultats sous la form d'un tableau doublement indexé : numériquement ET associativement.
Il ne prend aucunement une position de ligne, au passage (ton $i).
Il existe des constantes à lui passer en paramètres pour éviter ça...:

resultat = mysql_query($requete);
while($aLigne = mysql_fetch_array($resultat, MYSQL_ASSOC)) {
    print_r($aLigne);
    // tu traites tes résultats directement ici
}





mardi 30 octobre 2007 à 08:42:27 | Re : Recuperer requete avec jointure

agparchitecture

Merci je viens enfin de comprendre...
mercredi 31 octobre 2007 à 08:52:06 | Re : Recuperer requete avec jointure

agparchitecture

Cependant, j'aitoujours un autre problème dans cette boucle... Comment pourrais-je aborder le problème pour que a chaque analyse dans la boucle des tableau le libellé s'ajoute si le nom est le meme que la ligne avant:


Par exemple:

Exemple de récupération mysql par print_r($maligne)
array (
[0]=>1
[idusers]=>1
[1] =>test
[nom]=>test
[libelle]=>essais
)
array (
[0]=>1
[idusers]=>1
[1] =>test
[nom]=>test
[libelle]=>test-essais
)
array (
[0]=>1
[idusers]=>1
[1] =>ast
[nom]=>ast
[libelle]=>test-essais
)

Devienne quelque chose comme ca pour le placer dans une table html.

array (
[0]=>1
[idusers]=>1
[1] =>test
[nom]=>test
[libelle]=>essais
[libelle]=>test-essais
)

array (
[0]=>1
[idusers]=>1
[1] =>ast
[nom]=>ast
[libelle]=>NULL
[libelle]=>test-essais
)

Pour le moment j'essaye par fonction mais le problème vient que je ne sais pas comment renvoyer la valeur de la ligne précedente et celle en cours pour comparer.

J'espère avoir bien exposé le problème. Sinon poser des questions. Merci pour cette entraide.


Cette discussion est classée dans : problème, projet, tableau, requete, contient


Répondre à ce message

Sujets en rapport avec ce message

problème affichage + récupération données [ par kifouillou ] Bonjour, Sur une page j'ai des noms de projets : $html .="".""."".($r[' identification [ par recobaks ] Bonjour j'ai un tableau "user" qui contient trois champs 1 user_iduser 2 user_user 3 user_motpasse je une page contient une formulaire (2 champs texte Problème d'accents PHP/AJAX [ par riktus57 ] Bonjour à tous,Mon problème en quelques mots :J'essaye de mettre à jour ma base de données avec une commande AJAX, mais les accents sont remplacés par Dimension d'un tableau [ par kartingwoman ] Bonjour,J'ai un petit soucis avec un tableau, car les personnes de l'entreprise n'ont pas toutes les memes résolutions donc j'aimerais arranger sans. problème sur free [ par nemetos ] Bonjour,j'ai développé un site en local avec easy php 1.8. Il fonctionne très bien. Seulement lorsque je l'ai uploadé sur free il y a un bug. Voici co Problème d'affiche d'images dans un tableau [ par Moritus ] Bonjour, Je ne sais pas si c'est un problème php ou html mais vu que mon script est en php je me risque voila.. mon code détermine le chemin d'une im problème pour afficher une variable [ par a_sophie ] j'ai un problème pour afficher les variables provenant d'une requete dans un formulaire.dans un premier temps ds mon formulaire j'ai intégré cette req Besoin d'aide pour afficher une requete sql [ par syln3o ] Bonjour a tous.Et bien voila, j'ai un probleme je n'arrive pas a transformer une requete SQL comme je le veux (Bin vi, quand on en a pas les competenc problème formulaire ! [ par ahcorad ] Comment fait-on pour récupérer l'ensemble des info d'un tableau qui peut etre modifié ???ç ptet pa trè clair ! mon code :$nb=0;  while($ligne=mysql_fe Requete par rapport a des champs choisis [ par niko14 ] Salut tous les programmeurs (euses)!!Voila ma question!en fait je voudrias faire une requete sql pour recuperer des champs concernant des communes, ma


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales