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 :

enregistrement bdd mysql php


Sujet :

PHP & Base de données

  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 enregistrement bdd mysql php
    Bonjour,

    J'ai un problème d'enregistrement sur une bdd.
    J'ai une page qui affiche des produits et un champ pour sélectionner la quantité. Lorsque je valide j'enregistre dans une table "enregistrement" le produit avec le nom de l'acheteur et la quantitié.
    Ce que je n'arrive pas à comprendre c'est que cela fonctionne pour certain produit mais pas pour d'autres?

    Cela vient-il de mon code?

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    <?php
    session_start ();
    require('_connexion.php');?>
     
    <form method="post" action="index.php?page=commande">
     
    <?php
    if (isset($_SESSION['nom'])) {
    	if ($_POST['qte'])
    		{foreach( $_POST['qte'] as $Id_prod => $quantite )
    			{
     
    					if($quantite) {
    						echo ("num post".$Id_prod ."quantité". $quantite);
    						$prod = 'SELECT id_produits, famille, titre, code, conditionnement, masse, puht, reduction, puhtreduit, tva, puttc, dispo, unite FROM produits WHERE id_produits="'.$Id_prod.'"';
    						$pr = mysql_query($prod) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    						$data = mysql_fetch_array($pr);
    						$id_produits=$data['id_produits'];
    						echo("id_produits".$id_produits);
    						$famille=$data['famille'];
    						$produit=$data['titre'];
    						$code=$data['code'];
    						$reduction=$data['reduction'];
    						$puht=$data['puht'];
    						$puhtreduit=$data['puhtreduit'];
    						$tva=$data['tva'];
    						$puttc=$data['puttc'];
    						$masse=$data['masse'];
    						$conditionnement=$data['conditionnement'];
    						$dispo=$data['dispo'];
    						$unite=$data['unite'];
    						$nom=$_SESSION['nom'];
    						$email=$_SESSION['email'];
    						$tel=$_SESSION['tel'];
    						$enregistrement = "INSERT INTO enregistrement VALUES ('', '$famille', '$nom', '$tel', '$email', '$produit', '$code', '$conditionnement', '$masse', '$puht', '$reduction', '$puhtreduit', '$tva','$puttc','$id_produits' , '$quantite', '$dispo', '$unite')";
    						mysql_query($enregistrement);
    						echo "coucou";
    									}
    					else {}
    			}
    	}
    	else {}
    			}
    else{echo '<body onLoad="alert(\'Membre non reconnu, merci de vous inscrire et/ou de vous identifier avant de faire votre commande\')">';
    		// puis on le redirige vers la page d'accueil
    		echo '<meta http-equiv="refresh" content="0;URL=index.php">';}
    ?>
     
    <br />
    <h3><center>Entrer les quantités pour chaque produit puis en fin de commande cliquer sur "Enregistrer la commande" <br />Le récapitulatif de votre commande se trouve dans votre panier.<br />
    Vous pourrez modifier les quantités de votre commande ou supprimer des produits directement dans votre panier.</center></h3>
     
    <br />
     
    <br>
    <h3>
    <input type="submit" value="Enregistrer la commande" style="width:250px" name="Envoyer"></h3>
    <br />
     
     
    <table border="1" width=100%>
    <FONT size="15pt">
    <tr><td><center>Familles</center></td> 
    				<td><center>Produits</center></td> 
    				<td><center>référence</center></td> 
    				<td><center>Conditionnement</center></td> 
    				<td><center>Prix TTC</center></td> 
    				<td><center>Quantité souhaitée!!</center>
    				</tr></FONT>
    <tbody>
     
    <?php 
    	while($row = mysql_fetch_assoc($produits)) {
    		if ($row['famille']=="A-PUREE")
    		{$couleur=FFEC33;}
    	if ($row['famille']=="B-PUREE SUCREES")
    		{$couleur=D19E14;}
    	if ($row['famille']=="C-PATES A TARTINER")
    		{$couleur=F9CCF3;}
    	if ($row['famille']=="J-PRODUITS SUCRANTS")
    		{$couleur=A6D114;}
    	if ($row['famille']=="D-PATES D'AMANDE")
    		{$couleur=C1F1E5;}
    	if ($row['famille']=="E-PATES A TARTINER")
    		{$couleur=EFDBF8;}
    	if ($row['famille']=="F-GOMA-SIO")
    		{$couleur=F8CCF3;}
    	if ($row['famille']=="H-FRUITS SECS APERITIFS")
    		{$couleur=F8E2AB;}
    	if ($row['famille']=="G-FRUITS SECS")
    		{$couleur=DCD9D0;}
    	if ($row['famille']=="E-BOISSONS EN POUDRE")
    		{$couleur=EAF5A9;}
    	if ($row['famille']=="K-AUTRES")
    		{$couleur=D8C3F6;}
    	if ($row['famille']=="I-AIDES CULINAIRES")
    		{$couleur=F5D3E2;}
    	if ($row['dispo']=="0")
    		{$couleur=A4A4A4;}
    	if ($row['dispo']=="0")
    		{$com_dispo="Non disponible";}
    	else {$com_dispo="";}
     
    	$prix_ttc=round ($row['puht']*(1-($row['reduction']/100))*(1+($row['tva']/100))*$row['unite'],2);
     
    		 ?> 
    				<tr><td width=15% bgcolor="<?php echo $couleur; ?>"><?php echo $row['famille']; ?></td>
    				<td width=60% bgcolor="<?php echo $couleur; ?>"><?php echo $row['titre']; ?></td> 
    				<td width=10% bgcolor="<?php echo $couleur; ?>"><?php echo $row['code']; ?> </td> 
    				<td width=10% bgcolor="<?php echo $couleur; ?>"><?php echo $row['conditionnement']; ?></td> 
    				<td width=5% bgcolor="<?php echo $couleur; ?>"><?php echo $prix_ttc; ?></td> 
    				<td width=5%><?php echo $com_dispo; ?><input type="text" name="qte[<?php echo $row['id_produits']; ?>]" value="">
    				</tr>
     
    <?php }  ?>
     
     
    </tbody>
    </table>
    <br>
    <br>
    <h3>
    <input type="submit" value="Enregistrer la commande" style="width:250px" name="Envoyer"></h3></form>
    merci d'avance pour votre aide...

    PS. j'ai mis des echo pour vérifier que je passais toujours bien dans la boucle et c'est le cas...

  2. #2
    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
    C'est bon je viens de trouver le problème. J'avais du texte avec des ' dans la bdd et ce n'était pas compris...

    Au fait comment est ce que je peux régler ce problème sans forcément supprimer toutes les apostrophes de ma bdd?
    j'ai déclaré mon champ en varchar (255) latin1_general_ci


    Merci!

  3. #3
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Tu peux faire un addslashes avant d'enregistrer et un strisplashes après lecture.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    l'API mysql_ est OBSOLETE depuis des lustres !
    Elle est SUPPRIMEE dans PHP7.

    Il faut utiliser :
    • mysqli_
    • ou mieux, PDO





    ATTENTION AU INJECTIONS SQL !!!
    Il faut TOUJOURS protéger les données insérées dans les requêtes SQL !!



    Quant à "latin1_general_ci"...


Discussions similaires

  1. Problème connexion BDD MySQL
    Par Toytoy00 dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 08/12/2014, 10h52
  2. [MySQL] Problème connexion bdd mysql
    Par boobs60 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 11/03/2010, 08h48
  3. Problème connexion BDD MySql avec jdbc
    Par libery dans le forum JDBC
    Réponses: 6
    Dernier message: 27/05/2009, 12h25
  4. Réponses: 26
    Dernier message: 21/01/2009, 08h32
  5. Réponses: 8
    Dernier message: 04/07/2007, 12h51

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