import dans sql depuis un fichier externe

import dans sql depuis un fichier externe - PHP - Programmation

Marsh Posté le 06-11-2002 à 20:35:54    

voilà, j'ai un petit script qui me permet depuis une page d'un site, d'uploader dans ma base sql une feuille .csv sans passer par phpmyadmin. Seul problème, il m'insère la première ligne sans problème mais s'arrete après celle-ci alors que la page que j'utilise pour tester comprend 3 lignes....  
 

Code :
  1. <?
  2. $nom_fichier="$file"; // nom du fichier a convertir  
  3. $separateur=","; // sigle de sÈparateur  
  4. // ouverture connection base SQL  
  5. require("../pass.php" );
  6. $db_link = mysql_connect($host,$login,$pass);
  7. if (!$db_link) echo "Connexion impossible\n";
  8. $requete=mysql_select_db($db,$db_link);
  9. if (!$requete) echo "Selection impossible\n";
  10. // creation tableau d'affichage  
  11. // juste pour montrer que ca marche   
  12. echo "<table border=1 align=\"center\">";
  13. if (file_exists($nom_fichier))
  14. { // Si le fichier existe, on l'ouvre  
  15. $fp = fopen($nom_fichier, "r" );
  16. }
  17. else // sinon error  
  18. {
  19. echo "Fichier introuvable <br>";
  20. exit();
  21. }
  22. while (!feof($fp)) // On parcourt le fichier  
  23. {
  24. $ligne = fgets($fp,1024); // On se dÈplace d'une ligne  
  25. $liste = explode($separateur,$ligne); // Champs sÈparÈs par ,  
  26. // ici important  
  27. $col1 = $liste[0];
  28. $col2 = $liste[1];
  29. $col3 = $liste[2];
  30. $col4 = $liste[3];
  31. $col5 = $liste[4];
  32. $col6 = $liste[5];
  33. $col7 = $liste[6];
  34. $col8 = $liste[7];
  35. $col9 = $liste[8];
  36. $col10 = $liste[9];
  37. $col11 = $liste[10];
  38. $col12 = $liste[11];
  39. $col13 = $liste[12];
  40. $col14 = $liste[13];
  41. $col15 = $liste[14];
  42. echo "<tr>";
  43. echo "<td><p class=\"nounderline\">$col1</p></td>";
  44. echo "<td><p class=\"nounderline\">$col2</p></td>";
  45. echo "<td><p class=\"nounderline\">$col3</p></td>";
  46. echo "<td><p class=\"nounderline\">$col4</p></td>";
  47. echo "<td><p class=\"nounderline\">$col5</p></td>";
  48. echo "<td><p class=\"nounderline\">$col6</p></td>";
  49. echo "<td><p class=\"nounderline\">$col7</p></td>";
  50. echo "<td><p class=\"nounderline\">$col8</p></td>";
  51. echo "<td><p class=\"nounderline\">$col9</p></td>";
  52. echo "<td><p class=\"nounderline\">$col10</p></td>";
  53. echo "<td><p class=\"nounderline\">$col11</p></td>";
  54. echo "<td><p class=\"nounderline\">$col12</p></td>";
  55. echo "<td><p class=\"nounderline\">$col13</p></td>";
  56. echo "<td><p class=\"nounderline\">$col14</p></p></td>";
  57. echo "<td><p class=\"nounderline\">$col15</p></td>";
  58. echo "<td>";
  59. // important dans la base SQL  
  60. $query="insert into db (id,dbase,name,translate,titel,street,city,phone,fax,email,web1,web2,comments,land,vision) ";
  61. $query.="values ('$col1','$col2','$col3','$col4','$col5','$col6','$col7','$col8','$col9','$col10','$col11','$col12','$col13','$col14','oui') ";
  62. $resul=mysql_query($query);
  63. if (!$resul)
  64. {
  65. echo "<p class=\"nounderline\">Impossible d'ajouter</p>";
  66. }
  67. else
  68. {
  69. echo "<p class=\"nounderline\" align=\"center\">Import effectué</p></td></tr>";
  70. }
  71. }
  72. mysql_close($db_link); // ferme SQL  
  73. fclose($fp); // ferme fichier CSV  
  74. echo "</table>"; // fin du tableau  
  75. echo "<br><br><p class='subhead' align=\"center\">Merci... Importation terminée</p><br>"; ?>


---------------
Saint Seiya  || La Livebox || Europe, débats, réflexions
Reply

Marsh Posté le 06-11-2002 à 20:35:54   

Reply

Marsh Posté le 06-11-2002 à 21:52:21    

Au niveau code, je dirais que c'est bon. Je ne vois pas d'erreur.
T'es sur par contre, que dans ton fichier il y a bien des retours charios entre les diférentes lignes?
Si la fin de ligne n'est pas fait à partir d'un retour chario alors t'as peut être chargé le fichier en une seule passe.

Reply

Sujets relatifs:

Leave a Replay

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