Update / Insert php sql
Bob
-
bob -
bob -
Bonjour,
Voici mon problème, l'utilisateur entre des infos dans un formulaire un demandeur / une demande etc..., en validant les données se mettent dans la base de données jusque là tout va très bien. Seulement lorsque j'entre le même demandeur il me recréé un nouvel Id et un nouveau demandeur. Donc mon but est de soumettre l'insertion d'un nouveau demandeur dans la table à conditions.
Voilà ce que j'ai pour le moment. L'insertion d'un nouveau demandeur s'effectue bien mais pour le même demandeur il me le zappe :(.
Merci de votre aide,
Bob.
Voici mon problème, l'utilisateur entre des infos dans un formulaire un demandeur / une demande etc..., en validant les données se mettent dans la base de données jusque là tout va très bien. Seulement lorsque j'entre le même demandeur il me recréé un nouvel Id et un nouveau demandeur. Donc mon but est de soumettre l'insertion d'un nouveau demandeur dans la table à conditions.
//Vérification de la présence du demandeur dans la table $sql = ("SELECT count(*) FROM demandeur WHERE NomDemandeur='$NomDemandeur' and AdresseDemandeur='$AdresseDemandeur' and NumeroDemandeur='$NumeroDemandeur' and MailDemandeur='$MailDemandeur' and MoyenContact='$MoyenContact'"); $res = mysql_query( $sql ); if ($res) { $count = mysql_result($res, 0, 0 ); } if ($count <= 0) { mysql_query("INSERT INTO demandeur VALUES('','$NomDemandeur','$AdresseDemandeur','$NumeroDemandeur','$MailDemandeur','$MoyenContact')"); } else { else { $sql = "UPDATE demandeur set NomDemandeur='$Nomdemandeur',AdresesDemandeur='$AdresseDemandeur',NmeroDemandeur='$NumeroDemandeur',MailDemandeur='$MailDemandeur',MoyenContact='$MoyenContact' where NomDemandeur='$NomDemandeur' and AdresseDemandeur='$AdresseDemandeur' and NumeroDemandeur='$NumeroDemandeur' and MailDemandeur='$MailDemandeur' and MoyenContact='$MoyenContact'"; }
Voilà ce que j'ai pour le moment. L'insertion d'un nouveau demandeur s'effectue bien mais pour le même demandeur il me le zappe :(.
Merci de votre aide,
Bob.
A voir également:
- Update / Insert php sql
- Touche insert - Guide
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Easy php - Télécharger - Divers Web & Internet
18 réponses
whoow rapide :)
Voilà ma table
Voilà ma table
CREATE TABLE `demandeur` ( IdDemandeur int(11) PRIMARY KEY NOT NULL auto_increment, NomDemandeur varchar(38) default NULL, AdresseDemandeur varchar(38) default NULL, NumeroDemandeur char(14) default NULL, MailDemandeur varchar(38) default NULL, MoyenContact varchar(38) default NULL)
merci ^^ (c'est parce que je suis en stage :p hihi )
dans ta requete ( UPDATE blabla )
ton where ne semble incorrect
tu devrais essayer where idDemandeur = " machin" ;
ton enregistrement est reperé par sa clé primaire, là l 'id
non tu crois pas?
dans ta requete ( UPDATE blabla )
ton where ne semble incorrect
tu devrais essayer where idDemandeur = " machin" ;
ton enregistrement est reperé par sa clé primaire, là l 'id
non tu crois pas?
$sql = ("SELECT count(*) FROM demandeur WHERE NomDemandeur='$NomDemandeur' and AdresseDemandeur='$AdresseDemandeur' and NumeroDemandeur='$NumeroDemandeur' and MailDemandeur='$MailDemandeur' and MoyenContact='$MoyenContact'"); $res = mysql_query( $sql ); if ($res) { $count = mysql_result($res, 0, 0 ); } if ($count <= 0) { mysql_query("INSERT INTO demandeur VALUES('','$NomDemandeur','$AdresseDemandeur','$NumeroDemandeur','$MailDemandeur','$MoyenContact')"); } $iddemandeur =mysql_insert_id(); else { $sql = "UPDATE demandeur set NomDemandeur='$Nomdemandeur',AdresseDemandeur='$AdresseDemandeur',NmeroDemandeur='$NumeroDemandeur',MailDemandeur='$MailDemandeur',MoyenContact='$MoyenContact' where IdDemandeur='$iddemandeur'"; }
Voilà ce que j'ai mis mais maintenant ça me fait une erreur "Parse error: parse error, unexpected T_ELSE in C:\wamp\www\Maquette\maq3.php on line 58"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
c'est quoi ta ligne 58 de map3.php?
elle te sert a quoi ?
$sql = ("SELECT count(*) FROM demandeur WHERE NomDemandeur='$NomDemandeur' and AdresseDemandeur='$AdresseDemandeur' and NumeroDemandeur='$NumeroDemandeur' and MailDemandeur='$MailDemandeur' and MoyenContact='$MoyenContact'");
elle te sert a quoi ?
$sql = ("SELECT count(*) FROM demandeur WHERE NomDemandeur='$NomDemandeur' and AdresseDemandeur='$AdresseDemandeur' and NumeroDemandeur='$NumeroDemandeur' and MailDemandeur='$MailDemandeur' and MoyenContact='$MoyenContact'");
elle te sert a quoi ? jai toujours des soucis avec tes where
pourquoi ut met where iddemandeur ="machin" comme l autre
a moins que jai pas du tout compris a quoi elle te servait ..
c'est pour afficher tes données de ta base non?
désolé double poste,
cette ligne sert à vérifier si un demandeur portant le même nom, la même adresse, le même numéro etc... est dans la base, si c'est le cas il répond 1 sinon 0 et s'il répond 1 ça veut dire que c'est la même personne donc qu'il faut pas insérer une nouvelle personne dans la base. Dans l'absolu j'aurai uniquement besoin de récuperer l'id de la personne du coup mais je vois pas comment faire. quelque chose comme:
cette ligne sert à vérifier si un demandeur portant le même nom, la même adresse, le même numéro etc... est dans la base, si c'est le cas il répond 1 sinon 0 et s'il répond 1 ça veut dire que c'est la même personne donc qu'il faut pas insérer une nouvelle personne dans la base. Dans l'absolu j'aurai uniquement besoin de récuperer l'id de la personne du coup mais je vois pas comment faire. quelque chose comme:
else { select iddemandeur where iddemandeur= l'id du type que tu viens de trouver }
$sql=select iddemandeur from table where nomdemandeur="" and adresse="" etc ... ;
$id=mysql_query($sql)
....
else {
"update demandeur set nomdemandeur="", adresse="" , ..... where iddemandeur=". $id." ; "
non?
au fait je sais pas si c'ets une erreur de copier coller mais tu n execute pas la requete du update non?
$id=mysql_query($sql)
....
else {
"update demandeur set nomdemandeur="", adresse="" , ..... where iddemandeur=". $id." ; "
non?
au fait je sais pas si c'ets une erreur de copier coller mais tu n execute pas la requete du update non?
Bonjour,
Dans ton code :
Xavier
Dans ton code :
[...] if ($count <= 0) { mysql_query("INSERT INTO demandeur VALUES('','$NomDemandeur','$AdresseDemandeur','$NumeroDemandeur','$MailDemandeur','$MoyenContact')"); } $iddemandeur =mysql_insert_id(); else { [...]Tu as une instruction toute seule entre la fin du bloc if{...} et le else{...}, c'est sûrement ça ton erreur de syntaxe, non ?
Xavier
j'ai mis ça comme ça :
$sql = ("SELECT count(*) FROM demandeur WHERE NomDemandeur='$NomDemandeur' and AdresseDemandeur='$AdresseDemandeur' and NumeroDemandeur='$NumeroDemandeur' and MailDemandeur='$MailDemandeur' and MoyenContact='$MoyenContact'"); $res = mysql_query( $sql ); if ($res) { $count = mysql_result($res, 0, 0 ); } if ($count <= 0) { mysql_query("INSERT INTO demandeur VALUES('','$NomDemandeur','$AdresseDemandeur','$NumeroDemandeur','$MailDemandeur','$MoyenContact')"); $iddemandeur =mysql_insert_id(); } else { $iddemandeur =mysql_query("SELECT IdDemandeur FROM demandeur WHERE NomDemandeur='$NomDemandeur' and AdresseDemandeur='$AdresseDemandeur' and NumeroDemandeur='$NumeroDemandeur' and MailDemandeur='$MailDemandeur' and MoyenContact='$MoyenContact'"); }
quand jeparlais de select jparlais du premier
t'as viré update là ça va plus ^^
tu vois a peu prés ou pas ?
un truc du genre je disais :)
t'as viré update là ça va plus ^^
tu vois a peu prés ou pas ?
$sql = ("SELECT iddemandeur FROM demandeur WHERE NomDemandeur='$NomDemandeur' and AdresseDemandeur='$AdresseDemandeur' and NumeroDemandeur='$NumeroDemandeur' and MailDemandeur='$MailDemandeur' and MoyenContact='$MoyenContact'"); $id = mysql_query( $sql ); if ($id) { $count = mysql_result($id, 0, 0 ); } if ($count <= 0) { mysql_query("INSERT INTO demandeur VALUES('','$NomDemandeur','$AdresseDemandeur','$NumeroDemandeur','$MailDemandeur','$MoyenContact')"); $iddemandeur =mysql_insert_id(); } else { mysql_query("Update demandeur set NomDemandeur='$NomDemandeur' and AdresseDemandeur='$AdresseDemandeur' and NumeroDemandeur='$NumeroDemandeur' and MailDemandeur='$MailDemandeur' and MoyenContact='$MoyenContact'" where iddemandeur=".$id.";"); }
un truc du genre je disais :)
voilà ou j'en suis et ça ne marche toujours pas :)
$sql = ("SELECT iddemandeur FROM demandeur WHERE NomDemandeur='$NomDemandeur' and AdresseDemandeur='$AdresseDemandeur' and NumeroDemandeur='$NumeroDemandeur' and MailDemandeur='$MailDemandeur' and MoyenContact='$MoyenContact'"); $res = mysql_query( $sql ); if ($res) { $count = mysql_result($res, 0, 0 ); } if ($count <= 0) { mysql_query("INSERT INTO demandeur VALUES('','$NomDemandeur','$AdresseDemandeur','$NumeroDemandeur','$MailDemandeur','$MoyenContact')"); $iddemandeur =mysql_insert_id(); } else { mysql_query("UPDATE demandeur set NomDemandeur='$Nomdemandeur',AdresesDemandeur='$AdresseDemandeur',NumeroDemandeur='$NumeroDemandeur',MailDemandeur='$MailDemandeur',MoyenContact='$MoyenContact' where IdDemandeur='$res'"); $iddemandeur=$res; }
encore un double post désolé.
Je me suis rendu compte que je n'ai pas besoin de mon update mais juste de récuperer l'id qu'il a trouvé. Je ne sais pas comment faire mais je sais déjà que la syntaxe est correcte quand je met $iddemandeur= 1 dans le else il fait les liens que je veux sans ajouter de demandeur.
Je me suis rendu compte que je n'ai pas besoin de mon update mais juste de récuperer l'id qu'il a trouvé. Je ne sais pas comment faire mais je sais déjà que la syntaxe est correcte quand je met $iddemandeur= 1 dans le else il fait les liens que je veux sans ajouter de demandeur.
Le problème dans ton update, c'est que $res ne contient pas un iddemandeur !
Remplace ton update par :
Remplace ton update par :
$donnees = mysql_fetch_array($res); $iddemandeur = $donnees["iddemandeur"]; mysql_query("UPDATE demandeur set NomDemandeur='$Nomdemandeur',AdresesDemandeur='$AdresseDemandeur',NumeroDemandeur='$NumeroDemandeur',MailDemandeur='$MailDemandeur',MoyenContact='$MoyenContact' where IdDemandeur='$iddemandeur'");
$sql = ("SELECT iddemandeur FROM demandeur WHERE NomDemandeur='$NomDemandeur' and AdresseDemandeur='$AdresseDemandeur' and NumeroDemandeur='$NumeroDemandeur' and MailDemandeur='$MailDemandeur' and MoyenContact='$MoyenContact'"); $res = mysql_query( $sql ); if ($res) { $count = mysql_result($res, 0, 0 ); } if ($count <= 0) { mysql_query("INSERT INTO demandeur VALUES('','$NomDemandeur','$AdresseDemandeur','$NumeroDemandeur','$MailDemandeur','$MoyenContact')"); $iddemandeur =mysql_insert_id(); } else{ $sql = ("SELECT iddemandeur FROM demandeur WHERE NomDemandeur='$NomDemandeur' and AdresseDemandeur='$AdresseDemandeur' and NumeroDemandeur='$NumeroDemandeur' and MailDemandeur='$MailDemandeur' and MoyenContact='$MoyenContact'"); $res= mysql_query($sql); $donnees = mysql_fetch_array($res); $iddemandeur = $donnees['iddemandeur']; mysql_query("UPDATE demandeur set NomDemandeur='$Nomdemandeur',AdresesDemandeur='$AdresseDemandeur',NumeroDemandeur='$NumeroDemandeur',MailDemandeur='$MailDemandeur',MoyenContact='$MoyenContact' where IdDemandeur='$iddemandeur'"); }
Cette requête marche mais c'est de la bidouille j'aimerai bien un truc plus optimisé si vous avez sous le coude je fais deux fois mon $res et mon $sql sinon ils ne sont pas pris en compte dans le else....
Bonjour,
Alors, à la place de mysql_result, qui a une action sur la ressource $res, utilise mysql_num_rows qui n'accède à $res qu'en lecture et te donne le nombre de lignes.
Comme ça $res reste inchangé au niveau du else.
Ce qui donne :
Xavier
Alors, à la place de mysql_result, qui a une action sur la ressource $res, utilise mysql_num_rows qui n'accède à $res qu'en lecture et te donne le nombre de lignes.
Comme ça $res reste inchangé au niveau du else.
Ce qui donne :
$sql = ("SELECT iddemandeur FROM demandeur WHERE NomDemandeur='$NomDemandeur' and AdresseDemandeur='$AdresseDemandeur' and NumeroDemandeur='$NumeroDemandeur' and MailDemandeur='$MailDemandeur' and MoyenContact='$MoyenContact'"); $res = mysql_query( $sql ); if ($res) { $count = mysql_num_rows($res); } if ($count == 0) { mysql_query("INSERT INTO demandeur VALUES('','$NomDemandeur','$AdresseDemandeur','$NumeroDemandeur','$MailDemandeur','$MoyenContact')"); $iddemandeur =mysql_insert_id(); } else{ $donnees = mysql_fetch_array($res); $iddemandeur = $donnees['iddemandeur']; mysql_query("UPDATE demandeur set NomDemandeur='$Nomdemandeur',AdresesDemandeur='$AdresseDemandeur',NumeroDemandeur='$NumeroDemandeur',MailDemandeur='$MailDemandeur',MoyenContact='$MoyenContact' where IdDemandeur='$iddemandeur'"); }Voilà qui devrait aller :)
Xavier