par
dani69 » 15 nov. 2011, 11:54
Bonjour à tous !
C'est ma première sur ce forum et j'espère pouvoir trouver mon bonheur
Je vous explique mon problème : Je suis en stage et on m'a confié comme boulot de faire des manipulations sur un fichier texte qui s'organise de la façon
suivante :
### 1660976 Queries
### Total time: 5697.51144999981, Average time: 0.0034302190097869
### Taking 0.002950 to 0.611420 seconds to complete
### Rows analyzed 6592 - 6601
SET timestamp=XXX;
SELECT count(id_station) as count FROM tb_station WHERE id_pays = XXX and VALID = XXX;
SET timestamp=1318592706;
SELECT count(id_station) as count FROM tb_station WHERE id_pays = 1 and VALID = 1;
Mon objectif est de récupérer uniquement la requête, puis de dégager tout ce qui se trouve après le WHERE.
J'ai déjà fait ca :
public function getSelectWithoutWhere()
{
$requestAnonymised = '';
$request = '';
$save = false;
$cpt = 0;
foreach ($this->datalog as $line) {
if (strpos($line, 'SELECT') !== false || strpos($line, 'UPDATE') !== false) {
$save = true;
}
if ($save) {
if ($cpt == 0)
$requestAnonymised .= $line;
else if ($cpt == 1)
$request .= $line;
}
if ($save == true && strpos($line, ';') !== false && strpos($line, "timestamp") == false) {
$save = false;
$cpt++;
}
// else if ($save == true && strpos($line, 'WHERE') !== false) {
// $save = false;
//
// $cpt++;
// }
}
echo "<li>$requestAnonymised</li>";
echo "<li>$request</li>";
}
J'ai essayé de modifier le code dans tous les sens mais je n'y arrive pas...
Si quelqu'un peut m'aider je suis preneur
Merci !