PLEASE HELP: Importer des données CSV dans une base SQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : PLEASE HELP: Importer des données CSV dans une base SQL

Re: PLEASE HELP: Importer des données CSV dans une base SQL

par stealth35 » 08 déc. 2010, 11:15

Merci moogli

Effectivement c'est localhost le nom ... mais maintenant je n'ai plus aucun message d'erreur ....et rien ne se passe
les drivers PDO sont bien lancés .... étrange

Peut être définir un port car sous mamp mac c'est http://localhost:8888/
pourquoi avoir mis des "die" et envleve le bloque try...catch ?

l'extgension mysql_* et PDO c'est 2 chose differentes

Re: PLEASE HELP: Importer des données CSV dans une base SQL

par niko94100 » 08 déc. 2010, 01:04

Merci moogli

Effectivement c'est localhost le nom ... mais maintenant je n'ai plus aucun message d'erreur ....et rien ne se passe
les drivers PDO sont bien lancés .... étrange

Peut être définir un port car sous mamp mac c'est http://localhost:8888/

Re: PLEASE HELP: Importer des données CSV dans une base SQL

par moogli » 08 déc. 2010, 00:42

Soir,

Vire les or die derriere les instanciations de classe ca sert a rien !

Ca ne marche plus c'est un bon symptome sansnmessage d'erreur. Par defaut y a pas de mot passe a voir si il n'y a pas un soucis d'ortographe dessus. A tu un message d'erreur ? Tu de devrais "attrapper" les execptions (voir les exemples) afin d'avoir les eventuelles erreurs !

@+

Re: Importer des données CSV dans une base SQL

par niko94100 » 07 déc. 2010, 22:28

BONSOIR,

j'ai réussi à faire ce que je voulais sur mon PC et ce soir je rentre sur mon j'adapte ma connection de base ... (juste à mettre "root" en mot de passe)

ET LA CA NE MARCHE PLUS ....

Je ne comprends pas

mon code php:
<?php

$dbh = new PDO('mysql:host=127.0.0.1;dbname=test', 'root', 'root') or die (mysql_error ());

$file = new SplFileObject('licencies.ffn') or die (mysql_error ());
$file->setFlags(SplFileObject::READ_CSV | SplFileObject::SKIP_EMPTY) or die (mysql_error ());
$file->setCsvControl('|');


$dbh->exec("TRUNCATE TABLE licences") or die (mysql_error ());
$stmt = $dbh->prepare("INSERT INTO licences (IUF, club, Civilite, Prenom, Nom, in1, Sexe, Nationalite, Naissance, adresse1, adresse2, CP, Ville, Pays, Telephone, in2, Licence, in3, Type_lic, type_lic2, evo_licence, in4, in5, in6, date_lic1, date_lic2, date_lic3, date_lic4, date_lic5, date_lic6, date_lic7, date_lic8) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)") or die (mysql_error ());    

foreach($file as $row)
{
    $stmt->execute($row);
}


?>

MERCIII

Re: Importer des données CSV dans une base SQL

par niko94100 » 07 déc. 2010, 02:35

En gros
dans INSERT INTO licences (IUF, Nom, prénom, adresse....) les 26 comme ça
VALUES (1235, TOTO, Hubert, 1 rue de la paix.....) les 26 comme ça

.....

Eh bien merci je vais essayer demain ;)

bonne soirée

Re: Importer des données CSV dans une base SQL

par stealth35 » 07 déc. 2010, 02:26

Je dois juste mettre le nom des colonnes en fait ?
oui colonne et valeur, dans la requete PDO les valeur son remplacer par des ?
si t'en a 26 va faaloir ecrire les 26

Re: Importer des données CSV dans une base SQL

par niko94100 » 07 déc. 2010, 02:21

bref je lache l'affaire pour ce soir ....
j'ai 26 colonnes dans ma bases licences et le même nombre dans mon fichier CSV ...
bref la je dois être fatigué

Re: Importer des données CSV dans une base SQL

par niko94100 » 07 déc. 2010, 02:17

Je dois juste mettre le nom des colonnes en fait ?

Re: Importer des données CSV dans une base SQL

par stealth35 » 07 déc. 2010, 02:15

Bah oui ...... mais je te dis que je ne vois pas ..... je lis je relis ... mais la je sèche ....
qu'est ce que tu comprendra pas dans
INSERT INTO nom_de_table (col1,col2) VALUES(15,col1*2);

:?:

Re: Importer des données CSV dans une base SQL

par niko94100 » 07 déc. 2010, 02:12

Bah oui ...... mais je te dis que je ne vois pas ..... je lis je relis ... mais la je sèche ....

Re: Importer des données CSV dans une base SQL

par stealth35 » 07 déc. 2010, 02:07

c'est c'est pour copier une table vers un autre je te l'ai deja dis, la il faut une requete pour inserer 1 seule entré

Re: Importer des données CSV dans une base SQL

par niko94100 » 07 déc. 2010, 02:06

<?php
session_start();
	?>
<HMTL>
<p>
    Tapez le nom ou une partie du nom
</p>
<form action="" method="post">

<p>
    <input type="text" name="nom" />
    <input type="submit" value="Valider" />
</p>
</form>
</HTML>


<?php

$table=$_SESSION['newrech'];
$nom=$_POST['nom'];

if (isset($_GET['ajoutid'])) 
{
$id2 = $_GET['ajoutid'];
}

mysql_connect("localhost", "root", "root") or die (mysql_error ());
mysql_select_db("test")or die (mysql_error ()); 

// La c'est ma recherche dans la base
$reponse = mysql_query("SELECT * FROM licences JOIN clubs ON licences.club = clubs.club WHERE nom LIKE '%".$nom."%'");


// On affiche chaque entrée une à une

If ($nom == NULL) {

echo 'veuillez taper un nom</br>';

} 

else {

while($data=mysql_fetch_array($reponse))
echo '<a href="?'.SID.'&id='.$table.'&ajoutid='.$data['IUF'].'">'.$data['Nom'].' '.$data['Prenom'].'</a> '.$data['Naissance'].' '.$data['usuelclub'].'<br />';
} 

$id2 = $_GET['ajoutid'];
$id3 = $_GET['id'];




mysql_query("INSERT INTO $id3 SELECT * FROM licences WHERE IUF LIKE '$id2'");

echo '<a href="resultats.php?table='.$table.'" target="resultats">Cliquez ici pour afficher les resultats</a></br>';
echo '<a href="export2.php?table='.$table.'" target="blank_">exporter les resultats</a>';


?>

Voilà un exemple c'est pas très propre .... c'est fouillis mais ça marche ...
je vais dans un deuxième essayer d'apprendre à optimiser tout ça ...

Re: Importer des données CSV dans une base SQL

par stealth35 » 07 déc. 2010, 02:03

l'INSERT pas de soucis .... je l'ai déjà fait même avec des jointures ...
montre moi alors, et puis un INSERT avce des joiture c'est pas tres courrant

Re: Importer des données CSV dans une base SQL

par niko94100 » 07 déc. 2010, 02:01

l'INSERT pas de soucis .... je l'ai déjà fait même avec des jointures ...
la c'est pour ce cas précis
je n'ai pas manipulé de fichiers ...
Entre tables ça va mais la entre fichiers je ne comprends pas

Je sais que le SplFileObject me renvoies un tableau avec chaque ligne de licencies.ffn

donc ma variable contenant les valeurs est $file

Re: Importer des données CSV dans une base SQL

par stealth35 » 07 déc. 2010, 01:59

"INSERT INTO licences VALUES * FROM $file"

voilà ce que j'essaye ..... mais toujours rien ...

$fiel c'est PHP, la faut faire juste une requete mysql oublie ton fichier le but c'est d'inser une seul ligne la,
t'as pas lu la doc mysql ?