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 :

Impossible d'afficher un seul élément d'un BDD [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 54
    Par défaut Impossible d'afficher un seul élément d'un BDD
    Bonjour tout le monde,

    J'ai un souci qui m'empoisonne un peu.

    Sur un site j'ai un formulaire de contact où les données sont insérées dans une bdd.

    Puis j'affiche tous le contenu de ma table dans un tableau html d'une page affiche_contact.php.

    Je souhaite maintenant avoir la possibilité de modifier/supprimer les lignes.

    J'ai déjà fait l'étape supprimer et ça marche nickel !
    Cependant je galère pour l'update, et pour la bonne raison que je n'arive pas à afficher un seul éléments de ma base : c'est tout ou rien !
    Dans mon tableau j'ai donc une colonne où il y a deux lien : supprimer/modifier.

    Le but est lorsqu'on clique sur modifier, d'afficher le contenu de la ligne correspondant à l'id_contact cliqué et l'afficher dans des <input>.

    On modifierai donc le contenu directement dans les input et on aurait un bouton "sauvegader" qui renverrait vers affiche_question mis à jour.

    Comme je dis, je récupére parfaitement mon id_contact, ma requete est bonne, mais dés que je met un WHERE id_contact='$id_contact', on ne me renvoi plus rien. Comme j'ai dit, c'est soit toute la table soit rien

    Aprés les grands discour, le code !

    mon fichier affiche_contact.php:

    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
    <?php
     
    $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
    mysql_select_db('ma_base',$db)  or die('Erreur de selection '.mysql_error()); 
     
     
     
    ?>
     
     
    <title>Mes contacts</title>
     
     
    <body>
     
    	<table border="1">
    		<tr>
    			<th width="10%">Nom</th>
    			<th width="10%">Prenom</th>
    			<th width="10%">Adresse</th>
    			<th width="10%">E-mail</th>
    			<th width="10%">Telephone</th>
    			<th width="10%">Telephone Portable</th>
    			<th width="20%">Message</th>
    			<th width="10%">Date</th>
    			<th width="10%">Action</th>
    		</tr>
    		<?php
     
    // lancement de la requete avec transformation du format de la date
    $sql = " SELECT id_contact, nom, prenom, adresse, email, tel,tel2, questions, DATE_FORMAT(date, '%d-%m-%Y') as datefr  FROM contact_form ";  
     
     
     
    // on lance la requête (mysql_query)   
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
     
    // on recupere le resultat sous forme d'un tableau  
    $data = mysql_fetch_array($req);  
     
    while($data = mysql_fetch_array($req)) 
        { 
        // on affiche les informations des contacts
        echo '<tr><td>'.$data['nom'].'</td><td>'.$data['prenom'].'</td><td>  '.$data['adresse'].''; 
        echo ' </td><td>'.$data['email'].' ';  
        echo '</td><td> '.$data['tel'].' </td>';
        echo '<td>'.$data['tel2'].'</td>'; 
        echo '<td>'.$data['questions'].'</td>'; echo '<td>'.$data['datefr'].'</td>';
        echo '<td> <a href="supp.php?id_contact='.$data['id_contact'].'"> Supprimer</a>/ <a href="update.php?id_contact='.$data['id_contact'].'">Modifier</a> </td> </tr>';
        } 
     
    mysql_free_result ($req);  
     
    ?>
    </table>	
    </body>
    </html>
    Ensuite le fichier update.php, qui a pour but de réafficher des informations contact mais dans dans inputs :
    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
    <?php
    
    $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
    mysql_select_db('ma_base',$db)  or die('Erreur de selection '.mysql_error()); 
         
    	
    
    ?>
    <body>
    		<table border="1">
    		<tr>
    			<th width="10%">Nom</th>
    			<th width="10%">Prenom</th>
    			<th width="10%">Adresse</th>
    			<th width="10%">E-mail</th>
    			<th width="10%">Telephone</th>
    			<th width="10%">Telephone Portable</th>
    			
    		</tr>
    		<?php
    		
    $id_contact=$_GET['id_contact'];
    echo $id_contact ;//pour vériier qu'on récupére le bon id_contact. OK
    
    
    //Si j'utilise cette requête  on ne me renvoit aucun résultat, mais aucune erreur
    $sql = " SELECT * FROM contact_form WHERE id_contact = '$id_contact' ";  
    
    //ci dessous on me renvoit bien mes informations dans mes inputs ! cependant c'est tout le contenu de la table qui est affiché
    $sql = " SELECT * FROM contact_form ";
    
    
    // on lance la requête (mysql_query)  
    
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());  
    
    
    $data = mysql_fetch_array($req);  
    
    while($data = mysql_fetch_array($req)) 
        { 
        // on affiche les informations des contacts
        echo '<tr><td><input name="nom" type="text" id="nom" value='.$data['nom'].'></td>';
    	echo '<td><input name="prenom" type="text" id="prenom" value='.$data['prenom'].'></td>';
    	echo '<td><input name="adresse" type="text" id="adresse" value='.$data['adresse'].'></td>'; 
    	echo '<td><input name="email" type="text" id="email" value='.$data['email'].'></td>'; 
    	echo '<td><input name="tel" type="text" id="tel" value='.$data['tel'].'></td>'; 
    	echo '<td><input name="tel2" type="text" maxlength="10" size="10" id="tel2" value='.$data['tel2'].'></td></tr>'; 
    	
    	
        } 
    	
    mysql_free_result ($req);  
    
    ?>	</table>
    	
    	</body>
    
    </html>
    Mais j'ai le même souci dans ma table, dans le sens que dans affiche_contact, on ne me renvoit aucun résultat si ma table ne contient qu'un seul élément !
    Le premier éléments afficher est donc en réalité le 2nd de la table...
    Vous avez une idée pour me dépanner ?

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 54
    Par défaut
    Trouvé !

    Il fallait supprimer dans mon fihier Update la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data = mysql_fetch_array($req);


    Désolé pour le post pollueur !

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

Discussions similaires

  1. Afficher un seul élément à la fois
    Par guilhemlbdc dans le forum jQuery
    Réponses: 3
    Dernier message: 24/12/2013, 15h53
  2. [Débutant] Afficher une seule fois les éléments d'un liste triée
    Par cry57 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 16/03/2011, 16h10
  3. [EasyPHP]"impossible d'afficher la page"
    Par Nip dans le forum Apache
    Réponses: 3
    Dernier message: 07/04/2005, 21h23
  4. Joindre 2 colonnes pour en afficher une seule
    Par major2 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/04/2005, 15h17
  5. algorithme de tri tableau :afficher que les éléments unique
    Par sofiane61 dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 31/03/2005, 19h50

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