PHP : Mise a jour d'une B2D via un formulaire

Michael_gengen Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   -  
Michael_gengen Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour a tous.
Sissi aujourd'hui est un bon jour...
Voila, je suis en train de développer un programme sous php dans le but de faire du mailing. Je suis en stage dans une imprimerie et le patron voudrait faire une mise a jour de ses clients en leur envoyant un mail.

Déjà la premiere partie du programme fonctionne. Je parcours la base de données enfin les adresses e-mail et le mail est automatiquement envoyé au destinataire par le biais d'un sript php-html.

Mon problème est que dans le formulaire j'ai deux liens. Un qui sert a renvoyer les informations qui renvoit vers une page html disant en visuel que les info ont bien été envoyé, avec derriere la mise a jour de la base de données(Update des champs) et un autre servant a mettre le champs Blacklist a 1 permettant l'arret d'envoi de mail a l'adresse.

J'espère etre assez explicit.
Je vous remercie d'avance. Je ne vous cache pas que mon projet est a rndre inséssement sous peu alors merci de votre compréhension a toutes et à tous.


l'important c'est la vie et dans la vie faut avancer
donc l'imortant c'est d'avancer dans la vie! pffff wa?!
A voir également:

6 réponses

Michael_gengen Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   4
 
Le problème est au niveau des requêtes. J'y travaille mais j'attends a cou de clic toutes contributions sérieuses.

l'important c'est la vie et dans la vie faut avancer
donc l'imortant c'est d'avancer dans la vie!
0
maily Messages postés 7556 Date d'inscription   Statut Contributeur Dernière intervention   453
 
Bonjour!!

Tu devrais mettre tes requètes pour qu'on puisse t'aider le plus efficacement possible... ;-)

Maily :-))))
Boumj'chtattrape
0
Michael_gengen Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   4
 
Voila une

// connection au serveur localhost
if( $id = mysql_connect($srv,$usr,$pass) )
{
echo "youpi :) 1";
// connection à la base dev
if( mysql_select_db($base) ) {
echo "Succès de connexion.";
//requete de mise à jour du champs Blacklist de la table Mailing
$requete="UPDATE `mailing` Blacklist=='1' where Idclient="'.$Idclient.'";";
if (mysql_query($requete))
{
echo "Vous ne faites plus partie de liste de mailing GABEL";
}
else
{
echo "erreur requete : ".$requete;
}
}else{
echo "Echec connexion à la bdd";
}
//fermeture de la base de donnée
mysql_close($id);
echo "youpi :) 2";
} else {
echo "banga!";
//traitement si la connexion au serveur a échoué
die("Echec de connexion au serveur de base de données.");
}


?>




l'important c'est la vie et dans la vie faut avancer
donc l'imortant c'est d'avancer dans la vie!
0
Michael_gengen Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   4
 
Voila l'erreur correspondante


Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in c:\program files\easyphp1-7\www\php\formulaire2.php on line 15


Ligne 15 c'est la ou il ya la syntaxe de mon Update


l'important c'est la vie et dans la vie faut avancer
donc l'imortant c'est d'avancer dans la vie!
0
Utilisateur anonyme
 
Effectivement, c'est la que ca merde:
$requete="UPDATE `mailing` Blacklist=='1' where Idclient="'.$Idclient.'";";

Tu as inversé les simple quote et les double quote autour de $IdClient.
Il faut ecrire:
$requete="UPDATE 'mailing' Blacklist='1' where Idclient=' ".$Idclient;

Pas besoin de ; à la fin de la requete.

Si ca ne fonctionne pas, fais un echo $requete; et copie colle dans phpmyadmin pour voir l'erreur que Mysql te retourne.

Il y avait également une erreur de syntaxe on ne mets pas == en sql.

Les quote inversé ne sont pas une erreur en soit et ont été peché dans phpmyAdmin. (c'est comme ca qu'il réecrit les requetes). :)


Kalamit,
Y'a pas de fumée sans pneus.
0
Michael_gengen Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour a tout le monde

Je suis parvenu a résoudre le problème de ma première requete. Aujourd'hui s'en ait une autre qui me pose problème:
R2

// connection au serveur localhost
if( $id = mysql_connect($srv,$usr,$pass) )
{
// connection à la base dev
if( mysql_select_db($base) )
{
echo "Succès de connexion.";
//traitement si la requete a été executée avec succès
$requete="UPDATE mailing SET 'Comprenom' = ".$Comprenom.",
'Comnom' = ".$Comnom.",
'Comligne' = ".$Comligne.",
'Commail' = ".$Commail.",
'Adprenom' = ".$Adprenom.",
'Adnom' = ".$Adnom.",
'Adligne' = ".$Adligne.",
'Admail' = ".$Admail." WHERE Idclient = ".$Idclient." LIMIT 1;";
if($result = mysql_query($requete))
{
echo "la mise à jour a été effectué";
}
else
{
//traitement si l'execution de la requete à echoué
echo "Erreur de requête de base de données.";
echo $requete;
}
}
else
{
//traitement si la connexion à la base à échoué
die("Echec de connexion à la base.");
}
//fermeture de la base de donnée
mysql_close($id);
} else
{
//traitement si la connexion au serveur a échoué
die("Echec de connexion au serveur de base de données.");
}


?>

Msg d'erreur :

Succès de connexion.Erreur de requête de base de données.UPDATE mailing SET 'Comprenom' = , 'Comnom' = , 'Comligne' = , 'Commail' = , 'Adprenom' = , 'Adnom' = , 'Adligne' = , 'Admail' = WHERE Idclient = LIMIT 1;

==> Pour moi le problème vient des guillemets mais pour l'instant je ne suis pas encore parvenu a le résoudre.

Merci d'avance de votre aide à toutes et à tous.


l'important c'est la vie et dans la vie faut avancer
donc l'imortant c'est d'avancer dans la vie!
0
maily Messages postés 7556 Date d'inscription   Statut Contributeur Dernière intervention   453
 
Bonjour!!
Euh, les guillemets doivent être sur la chaine de caractère que tu vas entrer, par sur le nom du champs:

"UPDATE mailing SET Comprenom =' ".$Comprenom."',
Comnom = '".$Comnom."',
Comligne = '".$Comligne."',
Commail = '".$Commail."',
Adprenom = '".$Adprenom."',
Adnom = '".$Adnom."',
Adligne = '".$Adligne."',
Admail = '".$Admail."' WHERE Idclient = ".$Idclient." LIMIT 1;"; 


Maily :-))))
Boumj'chtattrape
0
ButcherTux Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
saloute,

essais plutot ceci :

$requete="UPDATE `mailing` Blacklist=='1'
WHERE Idclient='".$Idclient."';";

les guillemets simple à l'interieur des guillemets.
Sinon pourquoi les simples guillemets inversés à mailing?
0
Michael_gengen Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   4
 
Oui avec ce sript j'affecte a blacklist 1 mais j'ai déjà essayé. Je retest c'est tellement surprenant des fois...

l'important c'est la vie et dans la vie faut avancer
donc l'imortant c'est d'avancer dans la vie!
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Michael_gengen Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   4
 
youpi :) 1Succès de connexion.
Notice: Undefined variable: Idclient in c:\program files\easyphp1-7\www\php\formulaire2.php on line 16
erreur requete : UPDATE `mailing` Blacklist=='1' WHERE Idclient='';youpi :) 2

l'important c'est la vie et dans la vie faut avancer
donc l'imortant c'est d'avancer dans la vie!
0
Michael_gengen Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   4
 
Ce n'est pas les guillemets inversés à mailing qui causent le problème puisque je les ai dans une autre page ou il y a 0 défaut. Non je sais pas je l'ai vu écris comme ça et je l'ai adopté voila tout. Merci encore. Je continue à creuser.

l'important c'est la vie et dans la vie faut avancer
donc l'imortant c'est d'avancer dans la vie!
0