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 :

problème avec mysql_fetch_array()


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut problème avec mysql_fetch_array()


    J'ai un problème. Je vous explique : j'ai une variable $clients qui vaut un résultat d'une requête sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $client = mysql_fetch_array($resultat)
    Après, j'attribue les données contenues dans $client à différentes variabes dans une boucle, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $numSociete=$client['NumSociete']; 
    $typeSociete = $client['TypeSociete'];
    Je voudrai pouvoir passer à la valeur qui suit dans le tableau, en fait à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $typeSociete = $client['TypeSociete'+1];
    (pour passer un test dans un if)
    Seulement, cette syntaxe n'est pas bonne. J'ai cherché comment faire pour passer à la valeur qui suit, mais je n'ai rien trouvé

    Existe-t-il une solution à mon problème?


  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    mysql_fetch_array renvoie une ligne de résultat de la requête, sous forme de tableau indexé soit par nom des champs, soit numériquement dans l'ordre ou les chmpas sont renvoyés par la requête.

    Si par la "valeur qui suit", tu veux dire "le champs suivant", tu peux utiliser les index numériques du tableau.
    Si tu veux dire le résultat suivant de la requête, là il va falloir que tu récupères la ligne suivante par un autre mysql_fetch_array...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut
    Merci !
    Donc, si j'ai bien compris, pour obtenir le résultat suivant de ma requête je n'ai qu' à faire un mysql_fetch_affay($resultat) juste avant
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $typeSociete = $client['TypeSociete'+1];
    que j'écris
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $typeSociete = $client['TypeSociete'];

    Par contre, comme je suis dans une boucle
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    while ($client = mysql_fetch_array($resultat))
    est-ce-que cela aura une influence?
    Dois-je dupliquer la variable $resultat afin de ne pas interférer les données de la boucle?

    :merci

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    chaque fois que tu appelles mysql_fetch, tu avances d'un cran dans les résultats. Donc si tu l'appelles dans la boucle, tu avanceras de 2 crans à chaque tour de boucle, ce qui n'est pas exactement le but je suppose.

    Est-ce qu'on peut avoir le code de la boucle, il ya peut-etre un autre moyen de faire...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut
    Effectivement, je ne veux pas sauter deux tours dans la boucle...
    Je mets le code, mais je vais quand même supprimer des champs parce qu'elle est assez grande (car ça doit afficher les résultats d'une recherche à partir d'une requête sql...)

    Code php : 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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    $client = mysql_fetch_array($resultat);
    $ancienNom = acronymer(35, afficher($client['NomSociete'], ''));
    $nomSociete = '';
    $client='';
    $cptSoc = 0;
    //$cptSoc=0; //compteur du nombre de sociétés
    while ($client = mysql_fetch_array($resultat)){ 			
    	if($nomSociete!=$ancienNom) {
    		$numSociete=$client['NumSociete']; 
    		$nomSociete = acronymer(35, afficher($client['NomSociete'], ''));
    		$typeSociete = $client['TypeSociete'];
    		$numTesteur=$client['NumTesteur'];
                    $nomTesteur=$client['NomTesteur'];
    		$commentaire = $client['CommentaireTesteur'];	
    		echo "<div class=\"blocsearch\">";
    		echo "<div class=\"bloc1\">";
    		echo "<a href=\"ficheClient.php?numSociete=$numSociete\" target=\"_blank\"><img src=\"images/cliparts/{$client['ImageSociete']}\" width=\"50\" height=\"50\" alt=\"Accéder à la fiche client\" /></a>";
    		echo "</div>";		
    		echo "<div class=\bloc2\">";
    		echo "<strong>$nomSociete</strong><br />";
    		echo "Client n°$numSociete - $typeSociete<br />";
    		echo "</div>";				
    		echo "<div class=\"bloc2\">";
    		echo "$nomTesteur<br />";
    		echo "<label for=\"commentaire\">Commentaires :</label><br />
    		<textarea name=\"commentaire\" rows=\"3\" readonly=\"readonly\">$commentaire</textarea>";
    		echo "</div>";
    		echo "<div class=\"bloc3\">";
    		echo "<input type=\"checkbox\" class=\"check\"name=\"selection[]\" value=\"$numTesteur\" />";
    		echo "</div>";
    		$cptSoc++;
    		$ancienNom = acronymer(35, afficher($client['NomSociete'], ''));
    					}
    	else {
    		while ($nomSociete == $ancienNom) {
    			$numSociete=$client['NumSociete']; 
    			$nomSociete = acronymer(35, afficher($client['NomSociete'], ''));
    			$typeSociete = $client['TypeSociete'];
                            $numTesteur=$client['NumTesteur'];
    			$nomTesteur = $client['NomTesteur'];
    			$commentaire = $client['CommentaireTesteur'];
    			echo "<div class =\"bloc1\">
    					<h3>Même société</h3>
    				</div>";
    			echo "<div class=\"bloc2\">";
    			echo "$nomTesteur<br />";
                            echo "<label for=\"commentaire\">Commentaires :</label><br /><textarea name=\"commentaire\" rows=\"3\" readonly=\"readonly\">$commentaire</textarea>";
    			echo "</div>";
    			echo "<div class=\"bloc3\">";
    			echo "<input type=\"checkbox\" class=\"check\" name=\"selection[]\" value=\"$numTesteur\" />";
    			echo "</div>";
    			$resultatSuivant=$resultat;
    			$client2 = mysql_fetch_array($resultatSuivant);
    			$ancienNom = acronymer(35, afficher($client2['NomSociete'], ''));
    			}
    			echo "</div>";
    		}
     
    	}					
    echo "$cptSoc";

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    389
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2009
    Messages : 389
    Points : 192
    Points
    192
    Par défaut
    C'est bon, j'ai trouvé la solution, il fallait en fait supprimer le deuxième while et éditer la variable ancienNom à la fin.

    Problème résolu

    Merci de votre aide à tous

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

Discussions similaires

  1. [MySQL] Problème avec mysql_fetch_array
    Par toinou62 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/12/2009, 12h26
  2. [MySQL] Problème avec mysql_fetch_array():
    Par Tikenjahfakouli dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/05/2008, 11h28
  3. [MySQL] probléme avec mysql_fetch_array
    Par fofina dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 03/10/2007, 16h27
  4. Problème avec mysql_fetch_array
    Par yohan0262 dans le forum Requêtes
    Réponses: 13
    Dernier message: 13/06/2007, 14h35
  5. [MySQL] Problème avec mysql_fetch_array et une requête qui ordonne(ASC)
    Par Jim_Nastiq dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/03/2007, 10h46

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