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 :

Problème d'affichage avec Mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club Avatar de Bathou
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Points : 52
    Points
    52
    Par défaut Problème d'affichage avec Mysql
    Bonjour,


    Mon problème se situe sur la dernière boucle permettant l'affichage d'une liste de patients à supprimer.
    J'ai remarqué qu'il passe bien autant de fois qu'il le faut dans la boucle, mais qu'il affiche les mêmes valeurs à chaque fois.
    J'me d'mande si ça vient pas de cette ligne que je repete 2 fois:
    "$id = $tab_resultat['ID_PATIENT'];"

    Merci d'avance pour vos conseils!
    +

    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
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    <?php
    
    	require("connect.php");
    
    	$nom = $_POST['nom'];
    
    
    	
    	$connexion = mysql_pconnect(SERVEUR,NOM,PASSE);
    	mysql_select_db(BASE, $connexion);
    
    	$resultat = mysql_query("SELECT * FROM CARTE_IDENTITE_PATIENT WHERE NOM_PATIENT='$nom'");
    	//$resultat = mysql_query("SELECT ID_PATIENT FROM CARTE_CLINIQUE_PATIENT WHERE NOM_PATIENT='$nom'")
    	$tab_resultat = mysql_fetch_array ($resultat);
    		
    		
    	if(!$tab_resultat)
    	{
    	   header("location:erreur.php");  		
    	}else
    		{
    		//$nb_champs = mysql_num_fields($resultat);
    		//
    		
    		//$nb_champs = mysql_query("SELECT COUNT(*) AS ID_PATIENT FROM CARTE_IDENTITE_PATIENT WHERE NOM_PATIENT='$nom'");
    		//$donnees = mysql_num_fields($nb_champs);
    		$nb_resultat = mysql_num_rows($resultat);
    		
    		
    		
    		if ($nb_resultat==1)
    			{
    			$id = $tab_resultat['ID_PATIENT'];
    			$delete = mysql_query("DELETE FROM CARTE_IDENTITE_PATIENT WHERE ID_PATIENT='$id'");
    			$delete1 = mysql_query("DELETE FROM CARTE_CLINIQUE_PATIENT WHERE ID_PATIENT='$id'");
    			$delete2 = mysql_query("DELETE FROM CARTE_IMAGERIE WHERE ID_PATIENT='$id'");
    			
    			if(($delete)&($delete1)&($delete2))
    				{
    				echo "LE CLIENT $nom a été supprimé"; 	 
    				}
    			else
    				{
    				echo "Erreur de suppression dans la base"; 	
    				}
    		    
    			}
    		else
    			{$compteur=0;
    			while ($compteur != $nb_resultat) 
    			
    				{ 	$id= $tab_resultat['ID_PATIENT'];
    					$resultat2 = mysql_query("SELECT * FROM CARTE_CLINIQUE_PATIENT WHERE ID_PATIENT='$id'");
    					$resultat3 = mysql_query("SELECT * FROM CARTE_IMAGERIE WHERE ID_PATIENT='$id'");
    					$donnees2 = mysql_fetch_array($resultat2);
    					$donnees3 = mysql_fetch_array($resultat3);
    					
    					echo " Nom: ".$tab_resultat['NOM_PATIENT']; 
    					echo "<br/>";
    					
    					echo " Prénom: ".$tab_resultat['PRENOM_PATIENT']; 
    					echo "<br/>";
    					
    					echo " Sexe: ".$tab_resultat['SEXE']; 
    					echo "<br/>";			
    					
    					echo " Date de naissance: ".$tab_resultat['DATE_NAISSANCE']; 
    					echo "<br/>";			
    					
    					echo " Nom du médecin: ".$tab_resultat['NOM_MEDECIN']; 
    					echo "<br/>";
    
    					echo " Pathologie: ".$donnees2['PATHOLOGIE']; 
    					echo "<br/>";								
    					
    	
    					
    					//echo "<a href=sup2.php? > </a>"
    				
    				$compteur++;
    				}
    			}			/*{
    			for ($compteur=0;$compteur<=mysql_num_fields($resultat);$compteur++)
    				{
    				$donnees = mysql_fetch_array($resultat);
    				echo $donnees['DATE_NAISSANCE']; 
    				echo "<br/>";
    				}
    			
    			}
    */		}
    	mysql_close();
    ?>
    Parce que je nêm bien râler moi...

  2. #2
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Tu affiche le contenu de $tab_resultat dans ton while, alors que tu récupere tes données dans $donnees2 et $donnees3.
    Rakken

    Oneira, un monde imaginaire d'Heroic Fantasy.

    Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/

  3. #3
    Membre du Club Avatar de Bathou
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Points : 52
    Points
    52
    Par défaut
    Le problème, c'est que j'ai besoin de les afficher ces valeurs.
    En fait, j'ai plutot l'impression que la boucle ne fonctionne pas.
    Il faut reutiliser le $compteur à chaque fois que je fais un affichage pour le situer dans le tableau ou pas??

    Le resultat obtenu est l'affichage des données du dernier patient de la liste.


    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
    35
    36
    37
    38
    39
    		else
    			{$compteur=0;
    			while ($compteur != $nb_resultat) 
     
    				{ 	
    					$donnees = mysql_fetch_array($resultat);
    					$id2= $donnees['ID_PATIENT'];
     
    					$resultat2 = mysql_query("SELECT * FROM CARTE_CLINIQUE_PATIENT WHERE ID_PATIENT='$id2'");
    					$resultat3 = mysql_query("SELECT * FROM CARTE_IMAGERIE WHERE ID_PATIENT='$id2'");
     
    					$donnees2 = mysql_fetch_array($resultat2);
    					$donnees3 = mysql_fetch_array($resultat3);
     
    					echo " Nom: ".$donnees ['NOM_PATIENT']; 
    					echo "<br/>";
     
    					echo " Prénom: ".$donnees ['PRENOM_PATIENT']; 
    					echo "<br/>";
     
    					echo " Sexe: ".$donnees ['SEXE']; 
    					echo "<br/>";			
     
    					echo " Date de naissance: ".$donnees ['DATE_NAISSANCE']; 
    					echo "<br/>";			
     
    					echo " Nom du médecin: ".$donnees ['NOM_MEDECIN']; 
    					echo "<br/>";
     
    					echo " Pathologie: ".$donnees2['PATHOLOGIE']; 
    					echo "<br/>";								
     
     
     
    					//echo "<a href=sup2.php? > </a>"
     
    				$compteur++;
    				}
    			}
    Parce que je nêm bien râler moi...

  4. #4
    Membre expérimenté
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Points : 1 341
    Points
    1 341
    Par défaut
    Il faut reutiliser le $compteur à chaque fois que je fais un affichage pour le situer dans le tableau ou pas??
    Non, le fetch te fait passer automatiquement a la variable suivante.
    Dans ces cas là, il n'y a pas 36 solutions, il faut placer des "echo" de debug partout. A commencer, juste en dessous de ton while, par mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo ('compteur=' . $compteur . ' - nb_resultat=' . $nb_resultat);
    Ca te permettra de savoir combien de fois tu passes dans ta boucle.

    Ensuite use et abuse des "print_r" et autre "var_export/var_dump", pour connaitre le contenu de tes divers "donnees" (place éventuellement des <pre></pre> autour de test var_export, histoire d'avoir un formatage plus sympa).

    Bref, c'est du bon vieux debuggage a l'ancienne, mais sur un cas comme ca, c'est imparable.
    Rakken

    Oneira, un monde imaginaire d'Heroic Fantasy.

    Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/

  5. #5
    Membre du Club Avatar de Bathou
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Points : 52
    Points
    52
    Par défaut
    Je vais essayer ça, merci!
    Parce que je nêm bien râler moi...

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/05/2005, 11h06
  2. problème d'affichage avec printf
    Par sorari dans le forum C++
    Réponses: 12
    Dernier message: 08/03/2005, 18h30
  3. Réponses: 6
    Dernier message: 19/10/2004, 13h46
  4. Problème d'affichage avec trace
    Par WriteLN dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2003, 16h59
  5. Problème d'insertion avec MySQL
    Par Sonny dans le forum ASP
    Réponses: 13
    Dernier message: 28/08/2003, 13h52

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