Page 1 sur 1

Pb de mise à jour et d'insertion dans la base

Posté : 18 sept. 2006, 10:36
par coxine
Bonjour à tous !
J'ai un petit souci pour insérer une valeur dans ma base.
Je fais une vérification d'inscription.
J'ai donc un état que je récupère en méthode GET 'verif'.
Je souhaiterai ET modifier un état ET insérer un numéro de verification.
L'opération se déroule bien pour mon update (passer de l'état "Attente" à "Validé", en revanche, si j'ajoute les dernières lignes de code "INSERT INTO" rien ne se passe (pas de numéro de vérification) et l'état dans ce cas ne se modifie pas et reste en "attente".
J'ai du faire une erreur groooossière, mais je ne trouve pas !
Quelqu'un(e) pour m'aider ?
Merchi bcp !!!!
:D
if (isset($_GET['verif'])) //si l'opération s'est bien déroulée
{ 
// recherche enregistrement dans la base
mysql_select_db($database, $connexion);
$query_Inscription = "SELECT * FROM membres WHERE ID = '$ID_mbre'";
$resultSet = mysql_query($query_Inscription, $connexion) or die(mysql_error());//vérification membres
//modification base et ajout du champ : numéro inscription + etat liste "numéro d'inscription"
		if ($row_Inscription = mysql_fetch_assoc($resultSet)) //s'il y a un résultat en base
        {
		$updateMembres = "UPDATE membres SET etat='Validé'"; // je modifie l'état
		$updateMembres .= "WHERE ID = '$ID_mbre' ";
		mysql_query($updateMembres, $connexion) or die(mysql_error());
        $insertVerif = "INSERT INTO membres (verif) VALUE ('$verif')"; //j'insère le numéro d'enregistrement
		$insertVerif .= "WHERE ID = '$ID_mbre'";
		mysql_query($insertVerif, $connexion) or die (mysql_error()); 
		}
}
mysql_free_result($Inscription);

Posté : 18 sept. 2006, 12:11
par Maitrepylos
Bonjour,

Si tu fais un update de ta table 'membres', cele vaut dire que tu as déja insérer des données dans cet table avec cet '$ID_mbre'.

Donc ton 'verif' est initialisé à ou

Code : Tout sélectionner

NULL
, donc ce n'est pas un INSERT INTO qu'il faut faire mais également un Update.

Posté : 18 sept. 2006, 12:22
par Ryle
Il n'y a effectivement pas de WHERE dans un INSERT :)

Tu peux d'ailleurs mettre à jour les deux valeurs dans le même UPDATE, au lieu de faire deux requêtes distinctes, et accessoirement même te dispenser du SELECT qui précède si tu n'en utilises pas les résultats.

Si l'id est trouvé en base l'update sera fait. S'il n'est pas trouvé aucune ligne ne sera modifié, il n'est donc peut être pas nécessaire de tester l'existance avant (sauf si tu as des tonnes d'index et que cela cause un soucis de performance, mais dans ce cas là, il vaut mieux faire un count(*) que de ramener des données :))

Posté : 18 sept. 2006, 14:04
par Invité
Merci de vos réponses !
Alors, le champ : verif est null et pas de valeur par défaut.
J'ai essayé de la manière dont vous me conseillez, à savoir : UPDATE, mais ça ne fonctionne pas.
<?php if (isset($_GET['verif'])) //si l'opération s'est bien déroulée 
{  
// recherche enregistrement dans la base 
mysql_select_db($database, $connexion); 
$query_Inscription = "SELECT * FROM membres WHERE ID = '$ID_mbre'"; 
$resultSet = mysql_query($query_Inscription, $connexion) or die(mysql_error());//vérification membres 
//modification base et ajout du champ : numéro inscription + etat liste "numéro d'inscription" 
        if ($row_Inscription = mysql_fetch_assoc($resultSet)) //s'il y a un résultat en base 
        { 
        $updateMembres = "UPDATE membres SET etat='Validé', verif='$verif'"; // je modifie l'état et le champ verif
        $updateMembres .= "WHERE ID = '$ID_mbre' "; 
        mysql_query($updateMembres, $connexion) or die(mysql_error()); 
       } 
} 
mysql_free_result($Inscription);  
Faut-t-il que je mette une valeur par défaut dans le champ "vérif" ???
Merci!

Posté : 18 sept. 2006, 14:07
par coxine
oups je ne m'étais pas identifiée !
Oui j'ai fait un SELECT, car là, j'ai une vérification, mais à posteriori, quand cela fonctionnera (grrrr) je vais en faire d'autres !!!!

Posté : 18 sept. 2006, 14:17
par coxine
humhum
Ca fonctionne !
Merci de vos conseils, j'ai appris qqch 8) :wink:
Bon je retourne à mes cases à cocher et boutons radios !!!
Je n'ai rien avancé et ça ne fonctionne tjs pas !
A+