problème de script qui s'arrête avant la fin [RESOLU]

problème de script qui s'arrête avant la fin [RESOLU] - PHP - Programmation

Marsh Posté le 27-05-2009 à 22:51:52    

Bonjour,
 
J'ai un script php qui va lire deux bases de données sql. Ces bases sont de 4.000 entrées chacune.
 
Or, l'exécution de ce script s'arrête avant la fin.
 
Voici le script :
 
 
 
<?php
 
ini_set ('max_execution_time', 0);
ini_set ('max_input_time',1000000);
ini_set ('memory_limit',-1);
 
 
$liendb = mysql_connect("*****" );
mysql_select_db("****" );
 
 
$sql= "SELECT * FROM tarifalt";
$resultat = mysql_query ($sql);
 
while ($ct = mysql_fetch_array($resultat))
{
$r1=$ct['tarif'];
$altcout=$ct['prix'];
$tt=$ct['destination'];
 
 
    $sql1="SELECT * from tarif";
 
    $resultat1 = mysql_query ($sql1);
    while ($ct1 = mysql_fetch_array($resultat1))
    {
    $t1=$ct1['CODET'];
 
        if($r1==$t1)
            { $altmarg=$altcout*1.2;
            $stunt=$ct1['VALO'];
 
               if ($stunt>=$altmarg) {$res=$stunt; $txt="ancien tarif - marge >20%";}
               if ($stunt<$altmarg & $stunt>$altcout) {$res=$stunt; $txt="ancien tarif - marge < 20%";}
               if ($stunt<$altmarg & $stunt<$altcout) {$res=$altcout; $txt="augmentation";}
               echo $tt ."<BR>";
                  break;
            }
      }
}
 
echo "fini";
?>
 
 
Que faire ? Merci d'avance pour votre aide.  
 
Pascal


Message édité par sorciervoyageur le 28-05-2009 à 11:31:31
Reply

Marsh Posté le 27-05-2009 à 22:51:52   

Reply

Marsh Posté le 28-05-2009 à 10:13:49    

ne pas imbriquer les requêtes alors ? tu fais 4000 * 4000 requêtes, alors que tes 2 requêtes n'utilisent pas de critères WHERE (select * les 2)
 
Quel intérêt alors de les imbriquer ?


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 28-05-2009 à 10:32:14    

jagstang a raison
sauf erreur de ma part, le lien qui lie les deux requetes  
est que "tarif"=CODET  
if($r1==$t1)  $r1=$ct['tarif']; $t1=$ct1['CODET']; //extrait de ton code
donc je pense que pour la deuxieme requete  
tu peut faire "select * from tarif where CODET='$r1'",  
ce qui je pense limitera considérablement le temps d'excution,
 
apres tu peut aussi faire le tout en une seule requete tout depend de la relation entre tes deux tables.

Reply

Marsh Posté le 28-05-2009 à 10:49:43    

Merci Jagstang et Infoman64, c'est exact qu'avec l'instruction Where, je vais diviser par 4000 le nombre de requêtes.
 
Infoman64, tu dis que cela peut aussi se faire en une seule requête, peux-tu m'expliquer comment ?
 

Reply

Marsh Posté le 28-05-2009 à 11:09:51    

Comment indiquer que le problème est résolu ?

Reply

Marsh Posté le 28-05-2009 à 11:28:49    

ben si tes donnes sont liés
tu peut faire
select tarifalt.*,tarif.* from tarifalt,tarif where tarif=CODET  
ca te fait qu'une boucle, et ca te fera la meme chose,
 
et pour mettre que c'est resolu tu clique le petit stylo de ton premier message et tu marque [RESOLU] dans le titre de ton message
pour une fois qu'il y en a un qui le fait, il faut l'encourager... :)

Reply

Marsh Posté le 28-05-2009 à 11:32:35    

Merci Infoman64

Reply

Sujets relatifs:

Leave a Replay

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