[Résolu] éviter la complication avec explode()

éviter la complication avec explode() [Résolu] - PHP - Programmation

Marsh Posté le 31-12-2005 à 16:00:19    

Bonjour,
 
J'aurais besoin de votre aide pour m'aider à alléger ce code.
Cela m'évitera de repeter plusieurs fois les meme lignes, et cela me permettra d'apprendre à raccourcir mon code.
 

Code :
  1. <?
  2. $fruit = "pomme,poire,cerise";
  3. $categorie = explode(",", $fruit);
  4. $categorie[0] = ucfirst(addslashes($categorie[0])); // ces
  5. $categorie[1] = ucfirst(addslashes($categorie[1])); // 3
  6. $categorie[2] = ucfirst(addslashes($categorie[2])); // lignes
  7. // est t'il possible de reduire ces 3 lignes sans devoir les repeter ?
  8. // il se peut que la variable $fruit soit composée de 4 fruits, voir plus...
  9. // comment faire pour repeter une meme ligne autant de fois qu'il y aura de fruits ?
  10. $sql = "SELECT nom FROM video_categorie WHERE nom = '".$categorie[0]."'";
  11. $req = mysql_query($sql);
  12. $existe = mysql_num_rows($req);
  13. if ($existe == 0)
  14. {
  15. $sql2 = "INSERT INTO `video_categorie` ( `idcat` , `identifiant` , `nom` ) VALUES ('', '$identifiant', '".$categorie[0]."')";
  16. $req2 = mysql_query($sql2);
  17. }
  18. $sql = "SELECT nom FROM video_categorie WHERE nom = '".$categorie[1]."'";
  19. $req = mysql_query($sql);
  20. $existe = mysql_num_rows($req);
  21. if ($existe == 0)
  22. {
  23. $sql2 = "INSERT INTO `video_categorie` ( `idcat` , `identifiant` , `nom` ) VALUES ('', '$identifiant', '".$categorie[1]."')";
  24. $req2 = mysql_query($sql2);
  25. }
  26. $sql = "SELECT nom FROM video_categorie WHERE nom = '".$categorie[2]."'";
  27. $req = mysql_query($sql);
  28. $existe = mysql_num_rows($req);
  29. if ($existe == 0)
  30. {
  31. $sql2 = "INSERT INTO `video_categorie` ( `idcat` , `identifiant` , `nom` ) VALUES ('', '$identifiant', '".$categorie[2]."')";
  32. $req2 = mysql_query($sql2);
  33. }
  34. // comment faire pour vérifier dans la bdd si l'un des fruits (pomme,poire,cerise) provenant de la variable $fruit existe ?
  35. // Y a t'il moyen de vérifier tout cela en quelques lignes ?
  36. ?>


 
Merci pour votre aide :)


Message édité par Profil supprimé le 31-12-2005 à 16:25:52
Reply

Marsh Posté le 31-12-2005 à 16:00:19   

Reply

Marsh Posté le 31-12-2005 à 16:11:26    

Vu que PHP n'est pas typé, il vaut mieux se donner des conventions d'écritures pour pouvoir se relire plus facilement.
 

Code :
  1. $sFruits = "pomme,poire,cerise" ; // (string)
  2. $aCategories = explode(",", $sFruits) ; // (array)  
  3. foreach($aCategories as $sCategorie)
  4. {
  5.   #
  6.   $sql = "SELECT nom FROM video_categorie WHERE nom = '".$sCategorie."'";
  7.   #
  8.   $req = mysql_query($sql);
  9.   #
  10.   $existe = mysql_num_rows($req);
  11.   #
  12.   if ($existe == 0)
  13.   #
  14.   {
  15.   #
  16.   $sql2 = "INSERT INTO `video_categorie` ( `idcat` , `identifiant` , `nom` ) VALUES ('', '$identifiant', '".$sCategorie."')";
  17.   #
  18.   $req2 = mysql_query($sql2);
  19.   #
  20.   }
  21. }


Message édité par Max peigne le 31-12-2005 à 16:12:12
Reply

Marsh Posté le 31-12-2005 à 16:23:21    

C'est parfait, ca fonctionne et en seulement quelques lignes  :love:.
 
Merci pour ton aide !  :hello:

Reply

Marsh Posté le 01-01-2006 à 19:00:54    

question de culture g le code sert à quoi???

Reply

Marsh Posté le 01-01-2006 à 21:11:11    

littledark a écrit :

question de culture g le code sert à quoi???


 
Je ne sais pas, je ne vois pas de définition de la variable $identifiant que l'on insère en BDD.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed