Problème d'insertion dans une BDD

slent
Invité n'ayant pas de compte PHPfrance

31 mars 2010, 16:25

Bonjour à tous, alors voila j'ai un problème pour insérer des valeurs dans une base de donnée. Voila le code:
<?php
	
	if(isset($_POST['submit'])){	
		
		$req=mysql_query("SELECT id FROM produit");		
		$qte=0;
		
		while($val=mysql_fetch_row($req)){
			
			if($val[0]==$_POST['code']){
				
				mysql_query("UPDATE produit SET quantite=quantite+1 WHERE produit.id=".$_POST['code']);
				echo 'La valeur '.$_POST['code'].' a été mise à jour dans la base de donnée';
				$qte=1;
			}
		}
		if($qte==0){
			mysql_query("INSERT INTO produit VALUES('".$_POST['code']."','1','')");
			echo 'La valeur '.$_POST['code'].' a été ajouté à la base de donnée';			
		}		
	}
?>
Si le produit n'existe pas il est crée et si il existe déjà on incrémente sa quantité.
Le problème c'est que quand c'est une valeur du genre '1234' il y a aucun problème mais dès que c'est une valeur du genre 'abcd' l'insertion n'a pas lieu.
Ma base de donnée est formée de cette façon:
id : varchar(255)
quantite : int(255)

Merci d'avance pour vos réponses

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

31 mars 2010, 17:17

Bonjour,

Dans ta requête SQL, il faut que tu encadres les chaînes de caractères par des guillemets
Quand tout le reste a échoué, lisez le mode d'emploi...

slent
Invité n'ayant pas de compte PHPfrance

31 mars 2010, 17:27

Erf... En effet c'était bien ça, merci beaucoup!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

02 avr. 2010, 16:37

Modération :
Puisque ta question est résolue, je l'indique en ajoutant la petite icône verte "Résolu" pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.

TTu peux réaliser cette opération toi-même en cliquant sur le bouton Image en haut à droite de la réponse qui te semble la plus pertinente, si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer