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 :

Modifier une TABLE avec un formulaire sous forme de tableau


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Mai 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2012
    Messages : 9
    Par défaut Modifier une TABLE avec un formulaire sous forme de tableau
    Bonjour,
    j'ai un probleme que j'arrive pas a resoudre
    si quelqu'un peut m'aider ca serai vraiment sympas
    la 1ere page qui est dessous(en image) sa marche , mais la 2eme page ne marche pas
    en fait ,dans la 2eme page je veux recuperer les variable du tableau et faire les modification sur la table de ma BDD



    1 ere page pour editer ma table a partir de ma BDD sous forme de tableau et y inclure un formulaire
    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
    <form action="modification.php" method="post">
    <table align=center width=00 bgcolor="#FFFFFF">
    </tr>
    <td align=center width=100 bgcolor="#DC143C">Selectionner les reservations</td>
    <td align=center width=130 bgcolor="#DC143C">N° du Gite</td>
    <td align=center width=150 bgcolor="#DC143C">Date de début de séjour </td>
    <td align=center width=150 bgcolor="#DC143C">Date de fin de séjour </td>
    <td align=center width=130 bgcolor="#DC143C">N° de réservation</td>
    </tr>
    <?php
    $host = 'localhost';$user = '....';$pass = '....';
    $db = '...';
    $link = mysql_connect($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // Connexion à MySQL
    mysql_select_db($db);
    $select = "SELECT * FROM RESERVATION ORDER BY NoRes";
    $result = mysql_query($select,$link);
    $total = mysql_num_rows($result);
    /* Il manque une distinction des noms des cellules des tableaux, l'utilisation d'index s'impose */
    $i=0;//on initialise l'index
    while ($row = mysql_fetch_array($result)){
    $NoGite=$row['NoGite'];
    $DateResDeb = $row['DateResDeb'];
    $DateResFin=$row['DateResFin'];
    $NoRes=$row['NoRes'];
    echo "<tr>";
    echo "<td align=center bgcolor='#DCDCDC'><input type='checkbox' name='select[$i]' value='$select' /></td>";
    echo "<td align=center bgcolor='#DCDCDC'><input type='text' font='verdana' name='NoGite[$i]' value='$NoGite' /></td>";
    echo "<td align=center bgcolor='#DCDCDC'><input type='text' font='verdana' name='DateResDeb[$i]' value='$DateResDeb' /></td>";
    echo "<td align=center bgcolor='#DCDCDC'><input type='text' font='verdana' name='DateResDeb[$i]' value='$DateResFin' /></td>";
    echo "<td align=center bgcolor='#DCDCDC'><input type='text' font='verdana' name='NoRes[$i]' value='$NoRes' /></td>";
    echo "</tr>\n";
    $i++;// on incrémente l'index
    }
    // on libère le résultat
    mysql_free_result($result);
    mysql_close(); // Déconnexion de MySQL
    ?>
    </table>
    <input type="hidden" name="nb_lignes" value="<?php echo $i ?>">
    <input type="submit" name="valid_liste" value="VALIDER" >
    </form>
    2 eme page pour recuperer les variable du tableau et faire les modification sur la table de ma BDD

    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
    <?php
    //* Récup des données
    $nb_lignes=$_POST['nb_lignes'];//*/
    $host = 'localhost';$user = '....';$pass = '....';
    $db = '....';
    mysql_connect($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // Connexion à MySQL
    mysql_select_db($db);
    $link = mysql_connect($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // Connexion à MySQL
    mysql_select_db($db);
    $select = "SELECT * FROM RESERVATION ORDER BY NoRes";
    $result = mysql_query($select,$link);
    $total = mysql_num_rows($result);
    $nb_case=0;
    for ($i=0;$i<$nb_lignes;$i++){
    if(!isset($_POST['NoGite'][$i])) {
    $NoGite=$_POST['NoGite'][$i];
    $DateResDeb=$_POST['DateResDeb'][$i];
    $DateResFin=$_POST['DateResfin'][$i];
    $NoRes=$_POST['NoRes'][$i];
    $nb_lignes=$_POST['nb_lignes'][$i];
    $select = "SELECT * FROM RESERVATION where NoGite='$_POST[NoGite]'"; // on récupère le numero de Reservation en fonction de l'ID
    $result = mysql_query($select);
    $recup_valeurs=mysql_fetch_array($result);
    echo "Pour le Gite ".$recup_valeurs['NoGite']." on modifie le NoRes ".$NoRes." <br/>";
    mysql_query("UPDATE RESERVATION SET NoRes=".$NoRes." WHERE NoGite=".$NoGite."");
    $nb_case++;//incrémentation
    }
    }
    if($nb_case==0) {// Si aucune case n'est cochée
    echo '<font font="arial" size="2" color="red"><b>Vous devez selectioner au moins une reservation</b></font>';
    }//*/
    var_dump($_POST);
    // on libère le résultat
    mysql_free_result($result);
    mysql_close(); // Déconnexion de MySQL
    ?>
    j'ai des messages d'erreur

    Notice: Undefined index: nb_lignes in c:\program files\easyphp1-8-modgsi\www\site des gites\adherents\modification.php on line 3
    Vous devez selectioner au moins une reservation
    Notice: Undefined variable: result in c:\program files\easyphp1-8-modgsi\www\site des gites\adherents\modification.php on line 30

    Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8-modgsi\www\site des gites\adherents\modification.php on line 30

  2. #2
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    ta première erreur c'est que php ne trouve pas la valeur passée en get... tu dois tester si une valeur en get (ou post) existe bien avec un isset ou !empty et gérer en conséquence...

    la deuxième, c'est un problème de porté de variable... $result est défini dans une séquence de code... et tu cherches à libérer (au passage c'est pas utile) sa valeur en dehors de la séquence où elle est définie...

    la troisième découle de la deuxième...

    au passage, marie... l'extension mysql n'est plus maintenue et il faut utiliser mysqli et pdo pour te connecter à mysql...

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Mai 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2012
    Messages : 9
    Par défaut
    je viens de modifier

    ps : je suis debutante

    j'ai eu ces messages

    Notice: Undefined index: DateResFin in c:\program files\easyphp1-8-modgsi\www\site des gites\adherents\modification.php on line 18

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8-modgsi\www\site des gites\adherents\modification.php on line 23
    Pour le Gite ligne , on modifie le NoRes 1

    Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8-modgsi\www\site des gites\adherents\modification.php on line 34

  4. #4
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    je me doute...

    faut te mettre à l'anglais ou utiliser un traducteur en ligne, sinon tu va souffrir niveau débogage

    undefined index -> index (de tableau) indéfini... même combat donc pour la récupération de tes données en post... que pour celle en get...

    cette fois ça doit venir du fait que le formulaire n'envoi que les élément définis,pas ceux ne comportant pas de valeur...

    vire ta ligne avec mysql_free_result... c'est fait automatiquement... comme mysql_close d'ailleurs...

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Mai 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2012
    Messages : 9
    Par défaut
    Merciii

    mais maintenant un autre petit probleme


    Notice: Undefined index: DateResFin in c:\program files\easyphp1-8-modgsi\www\site des gites\adherents\modification.php on line 18

  6. #6
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    je te l'ai dit... l'index [$i] doit générer une valeur hors de ce qui existe...

    ou tu transmets un formulaire qui ne contient aucune ligne et comme tu testes pas l'existence de chaque ligne du formulaire...

Discussions similaires

  1. [MySQL] Modifier le contenu d'une table avec un formulaire ?
    Par quaresma dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 28/10/2010, 21h41
  2. alimenter une tables avec plusieurs formulaires
    Par vibalistic dans le forum VBA Access
    Réponses: 8
    Dernier message: 21/12/2007, 10h20
  3. Modifier une table uniquement par formulaire
    Par langevert dans le forum Sécurité
    Réponses: 6
    Dernier message: 14/08/2007, 13h39
  4. Lire et modifier une table avec plusieurs TQuery
    Par Alyx² dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/08/2006, 13h09
  5. Réponses: 2
    Dernier message: 20/07/2006, 19h40

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