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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 29
    Points : 17
    Points
    17
    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
    Points : 44 155
    Points
    44 155
    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 à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 29
    Points : 17
    Points
    17
    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
    Points : 44 155
    Points
    44 155
    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 à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 29
    Points : 17
    Points
    17
    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
    Points : 44 155
    Points
    44 155
    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

  7. #7
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Bonsoir,

    Merci pour la réponse. J'ai testé et remplacé suivant vos instructions (ligne 23 du code ci-dessous) mais cela ne fonctionne toujours pas.
    J'ai ajouté un echo (ligne 22) pour lire la variable et j'obtiens ceci : '.intval(\'.810.\').'

    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
     
    	<?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) 
    			{
    			echo "'intval($Id_qtes)'";
    			$requete = 'UPDATE enregistrement SET qte='.intval($modif_qte).' WHERE id_enregistrement = '.intval($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>
    Je ne fais peut être pas bien quelque chose en amont mais où? Si vous avez des idées!!??

    Merci d'avance

  8. #8
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce sont des \ ou des / finalement ?

    Les points et les apostrophes viennent de ton HTML.
    Évite également de laisser trainer des espaces entre tes balises : > <
    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>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Super ca fonctionne maintenant. Vraiment merci pour les conseils!!!
    J'apprends petit à petit...

    Sinon, si je veux faire du PDO qu'est ce que vous me conseillez comme solution?
    site hebergé sur un serveur maison (apache)
    ou site hebergé chez un fournisseur (lequel? disons qui soit gratuit)

    Encore merci!!

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    As-tu vérifié quelle version de PHP utilise ton application ? Il est possible que PDO Mysql soit activé sur une autre version.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    A priori on peut passer en 5.6.8 avec ceci

    Pour cela, ajoutez les lignes suivantes au fichier .htaccess à la racine de votre hébergement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <IfDefine Free>
    php56 1
    </IfDefine>
    Je ferme la discussion puisque mon problème est résolu MERCI!!!!!!!!!!!!

+ 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