Page 1 sur 1

insertion CSV

Posté : 16 juin 2009, 19:44
par cdavid
Bonjour

sur mon site je veu faire pour mes membres un tableau de statisques
le principe est assez simple je leur fourni un code qu'il mette sur leur site je diffuse dedans divers chose et je récupére les stats de divers annonceur donc il faut que je puisse intégré ces stats en csv selon le site du membre et les additionné selon le nombre d'annonceur

plus concrètement

si l'affilié x diffuse 10 affichage de toto.com + 20 momo.com et faut que je puisse intégré ces stats en csv dans la db mes en plus n'en lui affichez les stats qui viennent de ces 2 annonceur en un seul sa dois apparaitre de la façon suivante: affichage sur votre site 30

et franchement intégration du csv + le calcul j'ai aucune idée de comment faire

si quelqu'un peu m'aidé ou me fournir une piste merci d'avance

Posté : 17 juin 2009, 04:43
par Nagol
echo, file_get_contents, file_put_contents, explode

bonne lecture

Posté : 17 juin 2009, 06:41
par cdavid
<?php
  //connection au serveur:
  $cnx = mysql_connect( "localhost", "xxxx", "xxxxx" ) ;
  
  //sélection de la base de données:
  $db = mysql_select_db( "regie") ;

/*on exécute la requête*/
$result = mysql_query($sql);
/*on définit le fichier .csv*/

$fichier = "http://www.affilipub.com/rapports/statistiques_aff_1245173315.csv";

/*On ouvre le fichier à importer en lecture seulement*/
if (file_exists($fichier)) {
$fp = fopen("$fichier", "r");
}
else {
/*le fichier n'existe pas*/
echo "Fichier introuvable !<br />Importation stoppée.";
exit();
}

while (!feof($fp)) {
/*Tant qu'on n'atteint pas la fin du fichier on lit une ligne*/
$ligne = fgets($fp,4096);
/*On récupère les champs séparés par , dans liste*/
$liste = explode( ",",$ligne);
/*On assigne les variables*/
$Date = Date;
$Nom Site = Nom Site;
$Affichage = Affichage;
$Affichages payant = Affichages payant;
$Clic = Clic;
$Double clic = Double clic;
$Clic sortant = Clic sortant;
$variable3 = Formulaire;
$variable4 = Vente;
$variable5 = Gain;

/*Ajouter un nouvel enregistrement dans la table*/
$sql = "INSERT INTO affilipub VALUES('$Date','$Nom Site','$Affichage','$Affichages payant','$Clic','$Double clic','$Clic sortant','Formulaire','Vente','Gain')";
$result= mysql_query($sql);

if(mysql_error()) {
/*Erreur dans la base de donnees, sûrement la table qu'il faut créer*/
print "Erreur dans la base de données : ".mysql_error();
print "<br />Importation stoppée.";
exit();
}
else {
/*Tout va bien*/
print "$Date|$Nom Site|$Affichage|$Affichages payant|$clic|$Double clic|$Clic sortant|$Formulaire|$Vente|$Gain<br />";
/*Fermeture du fichier*/
fclose($fp);

echo '<br /><b>TABLE A JOUR ...</b><br />';

/*Préparation de la requête d'optimisation*/
$sql = 'OPTIMIZE TABLE affilipub';
/*on exécute la requête*/
$result = mysql_query($sql);

echo '<br /><b>TABLE OPTiMiSEE ...</b><br />';

/*THE END*/
echo '<br /><b>O.K ! ALL DONE.</b><br />';

}

else {
echo'<br /><b>UPDATE FAiLURE !</b><br />';
}

?>
j'ai cette erreur Parse error: syntax error, unexpected T_STRING in /home/site1864/web/regie/admin/affilicsv.php on line 31


puis j'ai modifier en comme sa:
<?php
  //connection au serveur:
  $cnx = mysql_connect( "localhost", "xxxxx", "xxxxx" ) ;
  
  //sélection de la base de données:
  $db = mysql_select_db( "regie") ;

/*on exécute la requête*/
$result = mysql_query($sql);
/*on définit le fichier .csv*/

$fichier = "http://www.affilipub.com/rapports/statistiques_aff_1245173315.csv";

/*On ouvre le fichier à importer en lecture seulement*/
if (file_exists($fichier)) {
$fp = fopen("$fichier", "r");
}
else {
/*le fichier n'existe pas*/
echo "Fichier introuvable !<br />Importation stoppée.";
exit();
}

while (!feof($fp)) {
/*Tant qu'on n'atteint pas la fin du fichier on lit une ligne*/
$ligne = fgets($fp,4096);
/*On récupère les champs séparés par , dans liste*/
$liste = explode( ",",$ligne);
/*On assigne les variables*/
$Date = 'Date';
$Nom Site = 'Nom Site';
$Affichage = 'Affichage';
$Affichages payant = 'Affichages payant';
$Clic = 'Clic';
$Double clic = 'Double clic';
$Clic sortant = 'Clic sortant';
$variable3 = 'Formulaire';
$variable4 = 'Vente';
$variable5 = 'Gain';

/*Ajouter un nouvel enregistrement dans la table*/
$sql = "INSERT INTO affilipub VALUES('$Date','$Nom Site','$Affichage','$Affichages payant','$Clic','$Double clic','$Clic sortant','Formulaire','Vente','Gain')";
$result= mysql_query($sql);

if(mysql_error()) {
/*Erreur dans la base de donnees, sûrement la table qu'il faut créer*/
print "Erreur dans la base de données : ".mysql_error();
print "<br />Importation stoppée.";
exit();
}
else {
/*Tout va bien*/
print "$Date|$Nom Site|$Affichage|$Affichages payant|$clic|$Double clic|$Clic sortant|$Formulaire|$Vente|$Gain<br />";
/*Fermeture du fichier*/
fclose($fp);

echo '<br /><b>TABLE A JOUR ...</b><br />';

/*Préparation de la requête d'optimisation*/
$sql = 'OPTIMIZE TABLE affilipub';
/*on exécute la requête*/
$result = mysql_query($sql);

echo '<br /><b>TABLE OPTiMiSEE ...</b><br />';

/*THE END*/
echo '<br /><b>O.K ! ALL DONE.</b><br />';

}

else {
echo'<br /><b>UPDATE FAiLURE !</b><br />';
}

?>
mes toujours la même erreur

Posté : 17 juin 2009, 08:28
par Invité
Si tu regardes ta ligne 31,
tu découvres que tu as codé ceci :
$Affichages payant = 'Affichages payant';
Où effectivement, tu as un nom de variable incorrect
que tu peux corriger en ajoutant "_" :
$Affichages_payant = 'Affichages payant';
ou en collant les deux mots et en mettant une majuscule au second :
$AffichagesPayant = 'Affichages payant';
N'oublie pas de répercuter cette modification
partout où tu as utilisé cette variable.
Fred

Posté : 17 juin 2009, 17:28
par cdavid
ok j'ai comprid

merci

Erreur:
Parse error: syntax error, unexpected T_ELSE in /home/site1864/web/regie/admin/affilicsv.php on line 71
<?php
  //connection au serveur:
  $cnx = mysql_connect( "localhost", "xxxxx", "xxxxx" ) ;
  
  //sélection de la base de données:
  $db = mysql_select_db( "regie") ;

/*on exécute la requête*/
$result = mysql_query($sql);
/*on définit le fichier .csv*/

$fichier = "http://www.affilipub.com/rapports/statistiques_aff_1245173315.csv";

/*On ouvre le fichier à importer en lecture seulement*/
if (file_exists($fichier)) {
$fp = fopen("$fichier", "r");
}
else {
/*le fichier n'existe pas*/
echo "Fichier introuvable !<br />Importation stoppée.";
exit();
}

while (!feof($fp)) {
/*Tant qu'on n'atteint pas la fin du fichier on lit une ligne*/
$ligne = fgets($fp,4096);
/*On récupère les champs séparés par , dans liste*/
$liste = explode( ",",$ligne);
/*On assigne les variables*/
$Date = 'Date';
$Nom_Site = 'Nom Site';
$Affichage = 'Affichage';
$Affichages_payant = 'Affichages payant';
$Clic = 'Clic';
$Double_clic = 'Double clic';
$Clic_sortant = 'Clic sortant';
$Formulaire = 'Formulaire';
$Vente = 'Vente';
$Gain = 'Gain';

/*Ajouter un nouvel enregistrement dans la table*/
$sql = "INSERT INTO affilipub VALUES('$Date','$Nom Site','$Affichage','$Affichages payant','$Clic','$Double clic','$Clic sortant','Formulaire','Vente','Gain')";
$result= mysql_query($sql);

if(mysql_error()) {
/*Erreur dans la base de donnees, sûrement la table qu'il faut créer*/
print "Erreur dans la base de données : ".mysql_error();
print "<br />Importation stoppée.";
exit();
}
else {
/*Tout va bien*/
print "$Date|$Nom Site|$Affichage|$Affichages payant|$clic|$Double clic|$Clic sortant|$Formulaire|$Vente|$Gain<br />";
/*Fermeture du fichier*/
fclose($fp);

echo '<br /><b>TABLE A JOUR ...</b><br />';

/*Préparation de la requête d'optimisation*/
$sql = 'OPTIMIZE TABLE affilipub';
/*on exécute la requête*/
$result = mysql_query($sql);

echo '<br /><b>TABLE OPTiMiSEE ...</b><br />';

/*THE END*/
echo '<br /><b>O.K ! ALL DONE.</b><br />';

}

else {
echo'<br /><b>UPDATE FAiLURE !</b><br />';
}

?>

Posté : 17 juin 2009, 19:04
par micetf
Pour commencer, j'ai vu qu'il restait encore plusieurs noms de variables incorrects :
$Nom_Site et non $Nom Site, $Double_clic et non $Double clic, ...
ET il faut bien TOUS les écrire correctement, même dans la requête SQL.

Ensuite,
Erreur:
Parse error: syntax error, unexpected T_ELSE in /home/site1864/web/regie/admin/affilicsv.php on line 71
Il y a un else qui surprend le parseur.
C'est souvent un problème d'accolade.
En "repassant", toutes tes conditions,
j'ai cru m'apercevoir que :
1 - Après l'insertion dans la BDD, si ça s'est bien passé, tu envoies un message. Mais après, tu oublies de fermer l'accolade du else.
2 - Juste après tu dois fermer l'accolade de la boucle de lecture du fichier. Avant de fermer le fichier.
3 - Enfin, à la fin de ton script, il reste :
}
else {
echo'<br /><b>UPDATE FAiLURE !</b><br />';
}
qui ne correspond à rien et donc provoquera une parse error.
Peut-être avais-tu écrit ça pour traiter le cas où la requête d'optimisation plantait.
Si tel est le cas, il manque la condition if.

Fred