Base de donnée originale / sample

Base de donnée originale / sample - PHP - Programmation

Marsh Posté le 15-07-2004 à 17:22:22    

Le topic original se trouve ici :
http://forum.hardware.fr/hardwaref [...] 4786-1.htm
 
Je pose ma question dans le forum PHP parce que ce qu'elle ne correspond plus au forum SGBD/SQL
 
re coucou,
Bon ca commence à prendre un peu forme tout ce bazar :p
 
Il y a quand même un truc qui me turlupine. C'est que j'ai l'impression de pisser pas mal de code... je suis certain que pour la majorité de mes requetes y a moyen de faire plus court !
 
Voici un exemple : un module pour ajouter les nouveaux artistes dans la table "song" et dans la table "mapping".
 

Code :
  1. //connexion à la base  
  2. @mysql_pconnect($BD_server, $BD_user, $BD_password) or die("Impossible to connect to the Database." );
  3.     @mysql_select_db($BD_base) or die("Impossible to connect to the Database." );
  4. /* on récupère les champs de l'artiste original */
  5. $artistoriginal = trim(htmlspecialchars(addslashes($_POST["artistoriginal"])));
  6. $titleoriginal = trim(htmlspecialchars(addslashes($_POST["titleoriginal"])));
  7. $albmuoriginal = trim(htmlspecialchars(addslashes($_POST["albumoriginal"])));
  8. $yearoriginal = trim(htmlspecialchars(addslashes($_POST["yearoriginal"])));
  9. /* on récupère les champs de la reprise */
  10. $artistsample = trim(htmlspecialchars(addslashes($_POST["artistsample"])));
  11. $titlesample = trim(htmlspecialchars(addslashes($_POST["titlesample"])));
  12. $albumsample = trim(htmlspecialchars(addslashes($_POST["albumsample"])));
  13. $yearsample  = trim(htmlspecialchars(addslashes($_POST["yearsample"])));
  14. /*on vérifie que la chanson original n'est pas déja dans la base de donnée*/
  15. $sql_original="SELECT * FROM song
  16.    WHERE artist='$artistoriginal' AND title = '$titleoriginal' AND album = '$albumoriginal' AND year = '$yearoriginal'";
  17. $req_original=mysql_query($sql_original);
  18. $res_original=Mysql_numrows($req_original);
  19. /*on vérifie que la chanson sample n'est pas déja dans la base de donnée*/
  20. $sql_sample="SELECT * FROM song
  21.    WHERE artist='$artistsample' AND title = '$titlesample' AND album = '$albumsample' AND year = '$yearsample'";
  22. $req_sample=mysql_query($sql_sample);
  23. $res_sample=Mysql_numrows($req_sample);
  24. /* JE VOUS FAIS GRACE DES TESTS */
  25. $sqloriginal = "INSERT INTO song VALUES('','$artistoriginal','$titleoriginal','$albumoriginal','$yearoriginal')";
  26.  $sqlsample = "INSERT INTO song VALUES('','$artistsample','$titlesample','$albumsample','$yearsample')";
  27.  // on insère les informations du formulaire dans la table
  28.      mysql_query($sqloriginal) or die('Erreur SQL !'.$sqloriginal.'<br>'.mysql_error());
  29.  mysql_query($sqlsample) or die('Erreur SQL !'.$sqlsample.'<br>'.mysql_error());
  30.  //on récupère l'id de l'original
  31.  $sqlidoriginal="SELECT id from song
  32.      WHERE artist='$artistoriginal' AND title = '$titleoriginal' AND album = '$albumoriginal' AND year = '$yearoriginal'";
  33.  $reqidoriginal=mysql_query($sqlidoriginal);
  34.  $dataoriginal=mysql_fetch_array($reqidoriginal);
  35.     $idoriginal=$dataoriginal['id'];
  36.  //on récupère l'id du sample
  37.  $sqlidsample="SELECT id from song
  38.         WHERE artist='$artistsample' AND title = '$titlesample' AND album = '$albumsample' AND year = '$yearsample'";
  39.  $reqidsample=mysql_query($sqlidsample);
  40.  $datasample=mysql_fetch_array($reqidsample);
  41.     $idsample=$datasample['id'];
  42.  echo $idoriginal;
  43.  echo $idsample;
  44.  echo "songs add in the song database<br>";
  45.  $sqlmapping="INSERT into mapping VALUES('','$idoriginal','$idsample')";
  46.  mysql_query($sqlmapping) or die('Erreur SQL !'.$sqlmapping.'<br>'.mysql_error());
  47.  echo "songs add in the mapping database <br>";


 
Je trouve ca lourd comme procédure... n'étant pas un As du binôme php/sql j'attends vos conseils.
 
Si c'est la bonne méthode merci de me le dire aussi ^^ pour me rassurer.
 
merci  
 


Message édité par peemousse le 15-07-2004 à 17:48:20
Reply

Marsh Posté le 15-07-2004 à 17:22:22   

Reply

Sujets relatifs:

Leave a Replay

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