insertion CSV

Eléphanteau du PHP | 30 Messages

16 juin 2009, 19:44

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

ViPHP
ViPHP | 3300 Messages

17 juin 2009, 04:43

echo, file_get_contents, file_put_contents, explode

bonne lecture
Fait du php depuis que ca existe ou presque :)

Eléphanteau du PHP | 30 Messages

17 juin 2009, 06:41

<?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

Invité
Invité n'ayant pas de compte PHPfrance

17 juin 2009, 08:28

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

Eléphanteau du PHP | 30 Messages

17 juin 2009, 17:28

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 />';
}

?>

Eléphant du PHP | 65 Messages

17 juin 2009, 19:04

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