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

Eléphant du PHP | 254 Messages

18 sept. 2006, 10:36

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);

Mammouth du PHP | 1029 Messages

18 sept. 2006, 12:11

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.
L'expérience est la somme de toutes nos erreurs.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 sept. 2006, 12:22

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 :))

Invité
Invité n'ayant pas de compte PHPfrance

18 sept. 2006, 14:04

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!

Eléphant du PHP | 254 Messages

18 sept. 2006, 14:07

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 !!!!

Eléphant du PHP | 254 Messages

18 sept. 2006, 14:17

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+