par
Invité » 08 août 2007, 09:25
Toutes les lignes comportent des modifications à faire (au moins pour les dates) , sinon il y a la solution en SQL pur avec
mais cela implique des difficultés supplémentaires (date avec 12 mois(JAN,FEB,MAR, etc...) donc 12 conditions dans la même instruction!).
....Je pense que la difficulté vient de la boucle que je ne sais pas bien écrire(incrémentation $i,$i++).
Ce qu'il faudrait c'est "formater" une bonne fois toutes les lignes en PHP et les insérer ensuite avec une requête INSERT.
En fait, quand je remplace la requête INSERT par des "echo ", la page HTML s'affiche trés rapidement!
<?php
$connect=mysql_connect("localhost", "root", "") or die ("Echec de la connexion au serveur !");
$select=mysql_select_db("facture");
$sql="SELECT * from $perso";
//echo $sq;
$result=mysql_query($sql);
$i=0;
while ($row=mysql_fetch_array($result)) {
if ($i==0) {
$i++; }
else {
$i--;
}
$abonne=$gsm;
//recueil des 9 derniers chiffres du N°
$abon=substr($gsm,-9);
$appelant=$row[0];
//effacer les espaces
$appelant2 = ereg_replace(' ','',$appelant);
//Effacer le i de international
$appelant3 = ereg_replace('i','',$appelant2);
//recueil des 9 derniers chiffres du N°
$appelant4=substr($appele3,-9);
$appele=$row[1];
$appele2 = ereg_replace(' ','',$appele);
$appele3 = ereg_replace('i','',$appele2);
$appele4=substr($appele3,-9);
$compose=$row[2];
$compose2 = ereg_replace(' ','',$compose);
$compose3 = ereg_replace('i','',$compose2);
$compose4=substr($compose3,-9);
//date fr vers date Mysql
$horo =dateswitch($row[3]);
// si temps est en secondes alors heures minutes secondes
if (ereg ("[A-Za-z]", $row[4])){
$dursec= ereg_replace("s","",$row[4]);
$seconde=convert_sec($dursec);
$dur=ConvertisseurTime($seconde);
}
else
{
$dur=ereg_replace(' ','',$row[4]);
}
$resultap=ereg_replace(' ','',$row[5]);
$appele4=substr($appele3,-9);
if ($resultap != "Efficace")
{
$resultap="Répondeur";
}
else if ($resultap == "Efficace" && $appele4 == $abon )
{
$resultap="Entrant";
}
else
{
$resultap="Sortant";
}
if ($compose4==$abon){
$corresp=$appelant3;
}
else
{
$corresp=$appele3;
}
//insertion des données
// $sql = "INSERT INTO $perso2(`type appel`, `abonné`,`correspondant`, `date`, `durée`,`id`)
//VALUES ('$resultap','$gsm','$corresp','$horo','$dur',$row[7]) ";
//affichage des données
echo $resultap ;
echo $gsm;
echo $corresp;
echo $horo;
echo $dur;
//$res = @mysql_query($sql) ;
//echo $sql;
}
?>
Toutes les lignes comportent des modifications à faire (au moins pour les dates) , sinon il y a la solution en SQL pur avec [code]CASE WHEN... THEN...ELSE...END[/code] mais cela implique des difficultés supplémentaires (date avec 12 mois(JAN,FEB,MAR, etc...) donc 12 conditions dans la même instruction!).
....Je pense que la difficulté vient de la boucle que je ne sais pas bien écrire(incrémentation $i,$i++).
Ce qu'il faudrait c'est "formater" une bonne fois toutes les lignes en PHP et les insérer ensuite avec une requête INSERT.
En fait, quand je remplace la requête INSERT par des "echo ", la page HTML s'affiche trés rapidement! [php]
<?php
$connect=mysql_connect("localhost", "root", "") or die ("Echec de la connexion au serveur !");
$select=mysql_select_db("facture");
$sql="SELECT * from $perso";
//echo $sq;
$result=mysql_query($sql);
$i=0;
while ($row=mysql_fetch_array($result)) {
if ($i==0) {
$i++; }
else {
$i--;
}
$abonne=$gsm;
//recueil des 9 derniers chiffres du N°
$abon=substr($gsm,-9);
$appelant=$row[0];
//effacer les espaces
$appelant2 = ereg_replace(' ','',$appelant);
//Effacer le i de international
$appelant3 = ereg_replace('i','',$appelant2);
//recueil des 9 derniers chiffres du N°
$appelant4=substr($appele3,-9);
$appele=$row[1];
$appele2 = ereg_replace(' ','',$appele);
$appele3 = ereg_replace('i','',$appele2);
$appele4=substr($appele3,-9);
$compose=$row[2];
$compose2 = ereg_replace(' ','',$compose);
$compose3 = ereg_replace('i','',$compose2);
$compose4=substr($compose3,-9);
//date fr vers date Mysql
$horo =dateswitch($row[3]);
// si temps est en secondes alors heures minutes secondes
if (ereg ("[A-Za-z]", $row[4])){
$dursec= ereg_replace("s","",$row[4]);
$seconde=convert_sec($dursec);
$dur=ConvertisseurTime($seconde);
}
else
{
$dur=ereg_replace(' ','',$row[4]);
}
$resultap=ereg_replace(' ','',$row[5]);
$appele4=substr($appele3,-9);
if ($resultap != "Efficace")
{
$resultap="Répondeur";
}
else if ($resultap == "Efficace" && $appele4 == $abon )
{
$resultap="Entrant";
}
else
{
$resultap="Sortant";
}
if ($compose4==$abon){
$corresp=$appelant3;
}
else
{
$corresp=$appele3;
}
//insertion des données
// $sql = "INSERT INTO $perso2(`type appel`, `abonné`,`correspondant`, `date`, `durée`,`id`)
//VALUES ('$resultap','$gsm','$corresp','$horo','$dur',$row[7]) ";
//affichage des données
echo $resultap ;
echo $gsm;
echo $corresp;
echo $horo;
echo $dur;
//$res = @mysql_query($sql) ;
//echo $sql;
}
?>
[/php]