birou Posté 23 Juin 2006 Posté 23 Juin 2006 Bonjour tout le monde ! Voila j'ai un probleme avec un formulaire depuis pres que une semaine et j'espere le résoudre dans ce forum. Mon probleme est que je voudrai faire de tel sorte que qd je rempli mon formulaire par plusieurs mot séparés par des virgules ou points virgules par exemple (bleble,dgef,sfdffsdf) ces mots seront récupérs et les insérés dans la base un par un . j' ai utilisé la methode explode .....foreach mais il les insérére comme il a ete ajouté dans le formulaire (bleble,dgef,sfdffsdf). voici une partie de mon code: <?php include ("../fonctions.php"); if(isset($_REQUEST['ajouter'])) { $erreur=""; if($_POST['synonyme']=="") $erreur="Vous devez remplir le champs. Synonyme non créé.<br/>"; // On regarde si il n'y a pas deja ce mot clef sur ce numero/smsc $sql="select * from short_numbers a, type_msg_recus b where a.numero=b.numeros_appel and a.smsc=b.smsc and b.type_msg='".addslashes($_POST['synonyme'])."'"; $res=mysql_query($sql);} if(mysql_num_rows($res)>0) { $data=mysql_fetch_array($res); $erreur.="Le mot-clef " . $_POST['synonyme'] . " est déjà utilisé sur le numéro " .$data['numero']. " par le service \"".(($data['synonyme_de']!="")? $data['synonyme_de']:$data['type_msg'])."\".<br>"; } if($erreur=="") { $ynonyme=explode(',',$_POST['synonyme']); $sql="select * from type_msg_recus where ref_type_msg='".$_POST['ref_type_msg']."'"; $res=mysql_query($sql); $data=mysql_fetch_array($res); $sql="select * from type_msg_recus where type_msg='".$data['type_msg']."' and synonyme_de=''"; $res=mysql_query($sql); while($data=mysql_fetch_array($res)) foreach($synonyme as $synonyme) { $sql="insert into type_msg_recus(type_msg,numeros_appel,smsc,categorie_msg,id_categorie_service,statut,text_info,avec_code,synonyme_de) values('".addslashes($_POST['synonyme'])."','".$data['numeros_appel']."','".$data['smsc']."','".$data['categorie_msg']."','".$data['id_categorie_service']."','".$data['statut']."','".addslashes($data['text_info'])."','".$data['avec_code']."','".addslashes($data['type_msg'])."')"; mysql_query($sql);} print("<div id=grosse_surbrillance>Synonyme ajouté avec succès.</div>"); } else { print("<div id=grosse_surbrillance>".$erreur."</div>"); } if(isset($_REQUEST['supprimer'])) { $sql="delete from type_msg_recus where ref_type_msg=".$_REQUEST['ref_type_msg']; mysql_query($sql); print("<div id=grosse_surbrillance>Synonyme supprimé avec succès.</div>"); } ?> </div> <div id=titre2_service>Les mots clefs et leurs synonymes</div> <div id=texte_service> <p class="p2"> <div id=stats> <?php $sql="select * from type_msg_recus where synonyme_de='' and type_msg<>'' group by type_msg"; $menu_nav=""; $menu_nav=menu_page($sql,$resultat,$_GET['page'],20,0); if ($menu_nav!="") { ?> <table width='85%' border='0' align="center" cellpadding='0' cellspacing='0'> <tr><td align="center"><? echo $menu_nav; ?></td></tr> </table> <?php } ?> <table> <thead> <tr> <td>Mot Clef</td><td>Synonymes</td><td>Ajouter Synonyme</td></tr> </tr> </thead> <?php while($data=mysql_fetch_array($resultat)) { print("<tr>"); print("<td valign=top><div id=grosse_surbrillance>".$data['type_msg']."</div>"); $sql2="select * from type_msg_recus where synonyme_de='".$data['type_msg']."' group by type_msg"; $res2=mysql_query($sql2); while($data2=mysql_fetch_array($res2)) { print($data2['type_msg']." "."<a href=php.php?supprimer=yes&ref_type_msg=".$data2['ref_type_msg']."><img src=../images/icone_supprimer.png alt=Supprimer border=0></a><br>"); } print("<td valign=top>"); print("<div id=formulaire>"); print("<form action='php.php' method='post'>"); print("<input type=text name=synonyme maxlength=20 size=15>"); print("</select>"); print("<input type=hidden value=".$data['ref_type_msg']." name=ref_type_msg>"); print("<input type=submit value=Ok name=ajouter>"); print("</form>"); print("</div>"); print("</td>"); print("</tr>"); } ?> </table> </div> </p> </div> Merci de votre comprehension <edit Modérateur : merci d'utiliser la balise CODEBOX pour les codes un peu longs>
NorSeb Posté 23 Juin 2006 Posté 23 Juin 2006 Bonjour, Ne pourrais-tu pas mettre le bout de code qui correspond au découpage de ta chaine et à l'insertion en base ? Parce que c'est plutôt contraignant de devoir faire le tri. C'est vendredi, je suis un peu feignant
birou Posté 23 Juin 2006 Auteur Posté 23 Juin 2006 Merci de répondre! voici le scripte <?php include ("../fonctions.php"); if(isset($_REQUEST['ajouter'])) { $erreur=""; if($_POST['synonyme']=="") $erreur="Vous devez remplir le champs. Synonyme non créé.<br/>"; // On regarde si il n'y a pas deja ce mot clef sur ce numero/smsc $sql="select * from short_numbers a, type_msg_recus b where a.numero=b.numeros_appel and a.smsc=b.smsc and b.type_msg='".addslashes($_POST['synonyme'])."'"; $res=mysql_query($sql);} if(mysql_num_rows($res)>0) { $data=mysql_fetch_array($res); $erreur.="Le mot-clef " . $_POST['synonyme'] . " est déjà utilisé sur le numéro " .$data['numero']. " par le service \"".(($data['synonyme_de']!="")? $data['synonyme_de']:$data['type_msg'])."\".<br>"; } et voici l'insertion en base là j'ai utilisé l'explode et foreach mais ca ne marche pas je sais si c'est la methode qui n'est pas bonne ou pas $synonyme=explode(",",$_POST['synonyme']); foreach($synonyme as $synonyme){ $sql="select * from type_msg_recus where ref_type_msg='".$_POST['ref_type_msg']."'"; $res=mysql_query($sql); $data=mysql_fetch_array($res); $sql="select * from type_msg_recus where type_msg='".$data['type_msg']."' and synonyme_de=''"; $res=mysql_query($sql); reset($synonyme); while($data=mysql_fetch_array($res)) { $sql="insert into type_msg_recus(type_msg,numeros_appel,smsc,categorie_msg,id_categorie_service,statut,text_ifo,avec_code,synonyme_de) values('".addslashes($_POST['synonyme'])."','".$data['numeros_appel']."','".$data['smsc']."','".$data['categorie_msg']."','".$data['id_categorie_service']."','".$data['statut']."','".addslashes($data['text_info'])."','".$data['avec_code']."','".addslashes($data['type_msg'])."')"; mysql_query($sql);}} print("<div id=grosse_surbrillance>Synonyme ajouté avec succès.</div>"); }
NorSeb Posté 24 Juin 2006 Posté 24 Juin 2006 Essaye de mettre un print_r($synonyme); après la ligne $synonyme=explode(",",$_POST['synonyme']); et dis nous ce que ca t'affiche ?
birou Posté 26 Juin 2006 Auteur Posté 26 Juin 2006 Slt ! voila ce qu'il m'affiche quand je fait print_r($synonyme); apres la ligne $synonyme=explode(",",$_POST['synonyme']); il m'affiche cela: Array ( [0] => act [1] => actio )
birou Posté 26 Juin 2006 Auteur Posté 26 Juin 2006 Merci a vous tous et particuliérement a ceux qui ont participe à mon poste . Ca marche nikel
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant