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 :

mise à jour tableau base de donnée


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 29
    Par défaut mise à jour tableau base de donnée
    Bonjour,

    Je suis débutant en php et j'arrive à afficher les données contenues dans une table. le but est de pouvoir mettre à jour cette table (contenant des produits et des quantité d'articles). Pour chaque ligne j'affiche un champ texte qui permet à l'utilisateur d'entrer une nouvelle quantité pour le produit (de la ligne).
    j'ai ensuite fait un post pour faire une mise à jour de la table avec la nouvelle valeur (quantité du produit).
    Le problème est que rien ne s'effectue lorsque que je lance un post? Je ne vois pas d'ou vient mon erreur?

    Merci d'avance pour votre aide!!

    PS. Je fais ca chez free et si j'ai bien compris il n'est pas possible de faire du PDO... juste mysql et 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
    58
    <?php
    session_start ();
    if (isset($_SESSION['nom'])) {
    	echo '<html>';
    	echo '<body>';
    	echo 'Connexion : '.$_SESSION['nom'].'';
    	echo '<br />';
    	echo '<a href="./deconnexion.php">Déconnection</a>';
    							}
    else {
    	echo 'Utilisateur non connecté';
    	echo '<br />';}
    ?>
    <br />
    Récapitulatif de votre commande
    <br />
    <table border="0.5">
    <tbody>
    <form method="post" action="modification.php">
    <input type="submit" value="modifier" name="Envoyer">
    </form>
     
    <?php 
    require('_connexion.php');
    $synt = 'SELECT id_enregistrement, nom, email, produit, qte FROM enregistrement WHERE nom="'.$_SESSION['nom'].'"' ;
    $synthese = mysql_query($synt) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    while ($data = mysql_fetch_array($synthese))
    		{?>
     
    	<table border="1" cellspacing="1" width="900" > <tbody>  
    	<tr><td width=70%> <?php echo $data['produit']; ?> </td>
    	<td width=5%> <?php echo $data['qte']; ?> </td>
    	<td width=5%> <input type="text" name="mod_qte" value=""> </td>
    	<td width=5%> <?php echo $data[id_enregistrement]; ?> </td>	</tr></tbody></table>
    <?php }
     
    if(isset($_POST['mod_qte'])) 
    	{
    	foreach( $_POST['mod_qte'] as $Id_qte => $modif_qte)
    		{
    		if($modif_qte) 
    			{
    			$modif = 'SELECT qte FROM enregistrement WHERE id_enregistrement="'.$Id_qte.'"';
    			$mod = mysql_query($modif) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    			$def_qte = mysql_fetch_array($mod);
    			$mod_enr = "UPDATE enregistrement SET qte='modif_qte'";
    			mysql_query($mod_enr);
    			}
    		else {}
    		}
    	}
    else{}
     
    ?>
     
     
    </tbody>
    </table>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tes champs input doivent être à l'intérieur des balises <form>.
    Il faut également que tes champs indiquent à quel id ils correspondent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td width=5%><input type="text" name="mod_qte[' .  <?php echo $data['id_enregistrement']; ?> . ']" value=""></td>
    Si tu débutes, apprend directement PDO car l'extension mysql_ est obsolète.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 29
    Par défaut
    Merci effectivement je n'avais pas fait attention à la balise form.

    J'arrive à modifier la ligne qui m'interesse en intégrant une valeur directement dans le code (dans la requet WHERE à la place de Id_qtes).
    Par contre lorsque je met la variable comme dans le code ci-dessous, la variable n'est pas lue ??
    J'ai essayé avec des "", "''", "'..'" mais rien ne fonctionne.

    Sinon pour le PDO je ne suis pas contre mais cela ne fonctionne chez free?

    Merci encore pour votre aide.

    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
    session_start ();
    if (isset($_SESSION['nom'])) {
    	echo '<html>';
    	echo '<body>';
    	echo 'Connexion : '.$_SESSION['nom'].'';
    	echo '<br />';
    	echo '<a href="./deconnexion.php">Déconnection</a>';
    							}
    else {
    	echo 'Utilisateur non connecté';
    	echo '<br />';}
    ?>
     
    <?php
    require('_connexion.php');
    foreach($_POST['mod_qte'] as $Id_qtes => $modif_qte)
    		{
    		if($modif_qte) 
    			{
    			$requete = 'UPDATE enregistrement SET qte="'.$modif_qte.'" WHERE id_enregistrement="'.$Id_qtes.'"';
    			mysql_query($requete);
     
    			}
    		else {}
    		}
    ?>
     
     
    <br />
    Récapitulatif de votre commande
    <br />
    <table border="0.5">
    <tbody>
    <form method="post" action="modification.php">
    <input type="submit" value="modifier" name="Envoyer">
     
     
     
    <?php 
     
    $synt = 'SELECT id_enregistrement, nom, email, produit, qte FROM enregistrement WHERE nom="'.$_SESSION['nom'].'"' ;
    $synthese = mysql_query($synt) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    while ($data = mysql_fetch_array($synthese))
    		{?>
     
    	<table border="1" cellspacing="1" width="900" > <tbody>  
    	<tr><td width=70%> <?php echo $data['produit']; ?> </td>
    	<td width=5%> <?php echo $data['qte']; ?> </td>
    	<td width=5%> <input type="text" name="mod_qte['.<?php echo $data['id_enregistrement']; ?>.']" value=""> </td>
    	<td width=5%> <?php echo $data[id_enregistrement]; ?> </td>	</tr></tbody></table>
    <?php }?>
     
     
     
    </form>
     
    </tbody>
    </table>

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu parles de quelle ligne ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 29
    Par défaut
    Désolé je n'ai pas été précis. Il s'agit de la ligne 21
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = 'UPDATE enregistrement SET qte="'.$modif_qte.'" WHERE id_enregistrement="'.$Id_qtes.'"';
    C'est le Id_qtes qui n'est pas pris en compte.

    D'ailleurs si je l'affiche avec un echo cela me donne : '/816/'. La variable 816 est la bonne mais je crois que les guillemets et les / embête la lecture dans la requete sql.

    Encore Merci d'avance!

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Déjà si ce sont des nombres, il n'y a pas besoin de guillemets dans la requête. On forcera par contre une valeur entière pour des raisons de sécurité.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = 'UPDATE enregistrement SET qte='. intval($modif_qte). ' WHERE id_enregistrement = '. intval($Id_qtes);
    Par contre je n'ai aucune idée de comment tu te retrouves avec des /
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. [Cours pt-05]Moteur de mise à jour de base de données
    Par Papy Turbo dans le forum Sondages et Débats
    Réponses: 38
    Dernier message: 29/10/2007, 19h02
  2. Mise à Jour Champ Base de Donnée
    Par arjo54 dans le forum IHM
    Réponses: 0
    Dernier message: 10/10/2007, 15h38
  3. [MySQL] Mise à jour dynamique base de données
    Par Lili72430 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/09/2007, 12h36
  4. Requête de mise à jour - Ouverture base de données
    Par ade94 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 31/05/2007, 16h50
  5. Problème de mise à jour de base de données
    Par poirier dans le forum ASP
    Réponses: 2
    Dernier message: 26/05/2004, 11h38

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