[RESOLU] Supprimer une ligne sous conditions

Eléphanteau du PHP | 13 Messages

09 nov. 2021, 12:31

Petit nouveau ! | 6 Messages Aujourd’hui, 10:23
Bonjour, j 'ai essayé cette méthode avec "unset" mais sans. Je poste ici le code complet si qq pouvais me donner quelque pistes. LE but est de supprimer les lignes qui contiennent une valeur < 310 ceci étant exprimé dans la variable $insta . Merci pour vos conseils

<?php



$tab = file('fichier.csv');
unset($tab[0]);
foreach($tab as $line) {

$tab = explode(",",$line);

// On identifie les valeurs intéressantes

$status0 = $tab[0];
$status1 = $tab[1];
$status2 = $tab[2];
$status5 = $tab[5];
$status6 = $tab[6];


$h = substr("$status6", 0,2); // ici le timestamp

$m = substr("$status6", 2,2); // ici le timestamp


$inta = substr("$status2", 0,3); // ici le timestamp

//if ($insta < "310");

$data=" L.marker([$status0 ,$status1], { icon: CautionIcon } ) . bindPopup ('</a><center>Stations<br><br> $inta<br>$status5 A $h H $m</center></a>') .addTo( map );";


f(substr_count($data, $insta < 310) ) { // GRRRRRRRR !
//unset($data); //GRRRRRRRR !
} //GRRRRRRRR !



echo("$data"."\n");


}






?>

Mammouth du PHP | 2703 Messages

09 nov. 2021, 13:38

à quoi ça sert de vouloir supprimer une ligne ?
si le but est de n'afficher que certains maker selon une condition, il suffit de faire une boucle et d'afficher dans la boucle les éléments souhaités.

il faut partir de quelque chose du genre :
//if ($insta < "310");
pour la condition, avec un var_dump($insta); avant pour bien ajuster le test en fonction du type.

Eléphanteau du PHP | 13 Messages

09 nov. 2021, 15:16

Ok je vais travailler sur cela merci du conseil :D

Eléphanteau du PHP | 13 Messages

10 nov. 2021, 23:43

Bonsoir
pas bcp avancé j 'ai fait ca

if ($insta < "300");
var_dump($insta);

cela donne ca NULL L.marker([36.15178 ,33.17092], { icon: CautionIcon } ) sur toutes les lignes ... bon je continu a chercher

Avatar du membre
Mammouth du PHP | 1564 Messages

12 nov. 2021, 18:16

Ta déclaré $inta, pas $insta ;)

Eléphanteau du PHP | 13 Messages

12 nov. 2021, 18:52

Bonjsoir two3d , oups! oui .... j 'ai modifié mais cela ne change rien

Mammouth du PHP | 2703 Messages

12 nov. 2021, 18:53

si, cela ne doit plus afficher NULL

Avatar du membre
Mammouth du PHP | 1564 Messages

12 nov. 2021, 22:18

Utilise echo sans parenthèses. ceci suffira:

Code : Tout sélectionner

echo "$data\n"; // pour info \n ne fonctionne pas avec des simples guillemets, seulement les doubles

Eléphanteau du PHP | 13 Messages

13 nov. 2021, 13:49

Ok merci de ton aide two3d
Apres avoir fait cela les lignes contenants la variable $insta ne sont pas supprimées ... je creuse

if ($insta <"320");
var_dump($insta);

$data="L.marker([$status0 ,$status1], { icon: CautionIcon } ) . bindPopup ('</a><center>INCENDIE<br><br> $inta<br>$status5 A $hr1 H $m</center></a>') .addTo( map );";
echo "$data\n";

Avatar du membre
Mammouth du PHP | 1564 Messages

13 nov. 2021, 15:48

Débug, pas à pas, commence déjà par vérifier qu'est ce que contient la variable $insta, si ton substr cible bien un numéro et pas "un espace et le numéro" (ou autre)

Ensuite si $insta contient bien un numéro tu peux essayer de la caster puis de mettre 320 en entier, pas une chaine de caractères:

Code : Tout sélectionner

if ((int)$insta < 320);
Tu vois, rien qu'en essayant de débuguer je viens de m’apercevoir que ton if se termine par un ";" ton erreur est sans doute là si insta est un numéro :wink: if/else PHP (doc)

Quand ça fonctionne pas, débug pas à pas.

Eléphanteau du PHP | 13 Messages

13 nov. 2021, 19:31

ah ok merci je m 'exécutes
Bon mon var dump donne ca c 'est mieux
string(3) "300"
string(3) "325"
string(3) "302"
string(3) "304"
string(3) "300"
string(3) "304"
string(3) "311"
string(3) "309"
string(3) "308"
string(3) "316"
string(3) "306"
string(3) "324"
string(3) "301"
string(3) "311"
string(3) "302"
string(3) "301"
string(3) "306"
string(3) "304"
string(3) "303"
string(3) "303"
string(3) "304"
string(3) "300"
string(3) "300"
string(3) "300"
string(3) "303"
string(3) "304"

Eléphanteau du PHP | 13 Messages

14 nov. 2021, 12:31

Bonjour, j 'ai trouvé le moyen de ne pas afficher les Marker sous condition . Cela fonctionne mais c'est pas beau

$b="320";

if ($insta < $b) {

echo ("//");
}

$data=" L.marker([$status0 ,$status1], { icon: CautionIcon } ) . bindPopup ('</a><center>INCENDIE<br>ou<br>POINT CHAUD INDUSTRIEL<br>$inta<br>$status5 A $hr1 H $m<br> </center></a>') .addTo( map);"

echo "$data\n";



}