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 :

Tableau, select et bdd


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
    Mars 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 16
    Par défaut Tableau, select et bdd
    Bonsoir,

    je souhaite mettre en place un panel administratif.

    Ce panel existe sous forme de tableau, comprenant différentes colonnes, et où chaque ligne = 1 client. Les colonnes correspondent donc aux informations personnelles du client, qu'il aura bien voulu transmettre.

    Ce tableau (panel administratif) doit me permettre de gérer mes clients. Ainsi, la dernière colonne du tableau s'intitule: Status. Cette colonne me sert à savoir où j'en suis avec tel, ou tel client.

    Ainsi, dans cette colonne il y a un champ 'select' qui contient les 3 options suivantes: 'off' ; 'on' ; 'over'.

    Mon problème est là.

    Je souhaiterai pouvoir sélectionner l'option de mon choix, puis, valider via le bouton submit 'Enregistrer les modifications'; et que l'information soit enregistré dans la bdd, à la ligne du client concernée. Ainsi, lorsque je rafraichirai la page, je verrai la modification de status effectuée sur le client concerné.

    Or, je ne sais pas comment m'y prendre.

    Voici le code du tableau:
    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
    while ($data = mysql_fetch_array($req))
        {
    	echo'<div id="tableau2">';
    	echo '<table class="contenu">';
    	echo '<tr>';
        echo '<td class="contenu">'.$data['nom'].'</td>';
        echo '<td class="contenu">'.$data['prenom'].'</td>';
        echo '<td class="contenu">'.$data['telephone'].'</td>';
        echo '<td class="mail">'.$data['email'].'</td>';
    	echo '<td class="region">'.$data['region'].'</td>';
    	echo '<td class="ville">'.$data['ville'].'</td>';
    	echo '<td class="status"><FORM METHOD="POST" ACTION="modifs.php" ENCTYPE="x-www-form-urlencoded">
    	<select name="status" style="position:relative;left:25px;width:100px;font-family:calibri;font-size:12px;font-style: bold;margin-right:50px;color:white;border:none">
    <option value="off" style="background:#CC0000">Off</option>
    <option value="on" style="background:#009900">On</option>
    <option value="over" style="background:#000000">Over</option>
    </select>
    </td>';
     
    	echo '</tr>';
    	echo '</table>';
    	echo '</div>';
    	}
    	echo '<INPUT type="submit" class="bouton" value="Enregistrer les modifications">';
    	echo '</form>';
    Puis, voici le code de la page modifs.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
    <?php
    if(isset($_POST['status']))      $status=$_POST['status'];
    else      $status="";
     
           // connexion à la base
    $db = mysql_connect('*.1and1.fr', '*', '*')  or die('Erreur de connexion '.mysql_error());
    // sélection de la base  
     
        mysql_select_db('*',$db)  or die('Erreur de selection '.mysql_error());
     
        // on écrit la requête sql
        $sql = "INSERT INTO *_* (status) VALUES('$status')";
     
     
        // on insère les informations du formulaire dans la table
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
     
        // on affiche le résultat pour le visiteur
        echo '<span class="textephp2">Les modifications ont bien été effectuées.</span>';
     
        mysql_close();  // on ferme la connexion
     
    ?>
    Comme vous pouvez le constater, je ne sais pas comment faire..

    Si quelqu'un pouvait m'éclairer, ce serait une grande joie.

    Merci à tous.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    bonsoir,
    dans ton code de modif tu fais un
    $sql = "INSERT INTO *_* (status) VALUES('$status')";
    çà ne peut pas marcher: ceci est une requête d'insertion.
    une requête de modif c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    $sql="UPDATE TaTable SET status='$status' WHERE IdClient='$ID'";

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 16
    Par défaut
    Merci pour ta réponse,

    j'ai donc remplacé la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        $sql = "INSERT INTO * (status) VALUES('$status') WHERE nom='$nom'";
    par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$sql="UPDATE * SET status='$status' WHERE id='$id'";
    Seulement, ça ne fonctionne pas encore.

    Le problème viendrait-il du fait que le script soit incapable d'identifier: $id ?

    Comment faire en sorte que le script 'sache' quelle ligne est modifiée.. ? (sachant que chaque ligne est associée au champ 'id' dans la table).

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    ben dans la requête qui te sert à remplir ton tableau, il faut que tu récupère aussi l'Id du client et que tu le passes en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="IdClient" value="$data[Id]" />
    dans le form ou il y a ton select

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 16
    Par défaut
    Ok, j'ai donc fais ceci:

    Partie tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	echo '<td class="status"><FORM METHOD="POST" ACTION="modifs.php" ENCTYPE="x-www-form-urlencoded">
    	<select name="status" style="position:relative;left:25px;width:100px;font-family:calibri;font-size:12px;font-style: bold;margin-right:50px;color:white;border:none">
    <option value="off" style="background:#CC0000">Off</option>
    <option value="on" style="background:#009900">On</option>
    <option value="over" style="background:#000000">Over</option>
    </select>
    <input type="hidden" name="IdClient" value="$data[id]" />
    </td>';
    Partie traitement (modifs.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
    if(isset($_POST['IdClient']))      $IdClient=$_POST['IdClient'];
    else      $IdClient="";
     
    if(isset($_POST['status']))      $status=$_POST['status'];
    else      $status="";
     
           // connexion à la base
    $db = mysql_connect('*', '*', '*')  or die('Erreur de connexion '.mysql_error());
    // sélection de la base  
     
        mysql_select_db('*',$db)  or die('Erreur de selection '.mysql_error());
     
        // on écrit la requête sql
    	$sql="UPDATE * SET status='$status' WHERE id='$IdClient'";
     
     
        // on insère les informations du formulaire dans la table
        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
     
        // on affiche le résultat pour le visiteur
        echo '<span class="textephp2">Les modifications ont bien été effectuées.</span>';
     
        mysql_close();  // on ferme la connexion

    Seulement, ça ne marche toujours pas..

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 316
    Par défaut
    soit plus précise; c'est quoi qui marche pas ton code ou la modif dans la table?

Discussions similaires

  1. Insertion dans un tableau à partir de BDD
    Par jerbien13 dans le forum NetBeans
    Réponses: 1
    Dernier message: 18/05/2011, 12h29
  2. Comment placer un lien dans un tableau depuis une bdd?
    Par redhotchilipeppers dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/01/2011, 21h00
  3. Retour commande SELECT sur BDD Firebird
    Par BlackPulsar dans le forum JDBC
    Réponses: 0
    Dernier message: 24/04/2010, 16h36
  4. Créer un tableau + insert dans Bdd
    Par Evilam dans le forum Langage
    Réponses: 8
    Dernier message: 19/07/2008, 20h38
  5. EOleException suite à SELECT sur BDD Access
    Par zworg dans le forum Bases de données
    Réponses: 6
    Dernier message: 17/06/2008, 11h27

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