[RESOLU] modifier une condition en fonction d'un autre condition

Eléphanteau du PHP | 17 Messages

05 mai 2023, 14:49

Bonjour à tous

je souhaite créer une condition :

Code : Tout sélectionner

if ($row != 0){}
seulement je ne connais pas la variable $row à l'avance, donc je souhaiterai pouvoir modifier ma condition comme ceci s'il y a une autre ligne :

Code : Tout sélectionner

if ($row != 0 && $row !=1){}
mais je ne sait pas comment faire, quelqu'un à une idée ?

je ne veux changer que ce qui se trouve entre parenthèse, ce serait trop long sinon, merci, stef

Mammouth du PHP | 2703 Messages

05 mai 2023, 14:53

pas compris
si if ($row != 0 && $row !=1) fait le job, pourquoi ne pas mettre directement ceci ?

Eléphanteau du PHP | 17 Messages

05 mai 2023, 14:55

parce que je ne connais pas les variables $row à rajouter à l'avance si ça se trouve ce sera if ($row != 0 && $row !=1 && $row !=255 )

Avatar du membre
Mammouth du PHP | 1609 Messages

05 mai 2023, 14:58

Salut, ce que tu veux faire n'est pas clair du tout.
if (($line == 0 && $row != 0) || ($line > 0 && $row != 0 && $row != 1)) {}
Développeur web depuis + de 20 ans

Avatar du membre
Mammouth du PHP | 1609 Messages

05 mai 2023, 15:00

parce que je ne connais pas les variables $row à rajouter à l'avance si ça se trouve ce sera if ($row != 0 && $row !=1 && $row !=255 )
et donc ce "si ça se trouve" dépend de quoi ?
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 17 Messages

05 mai 2023, 15:03

je m'explique peut-être mal , je vais donc reformuler

J'ai un certain nombre de lignes à supprimer
chaque ligne à supprimer correspond à une variable dénommée $row

Je dois afficher un texte en enlevant les lignes à supprimer.

Ainsi ma condition if ($row != 0) doit changer selon les lignes à supprimer,

est ce que quelqu'un sait comment faire ?

Merci

Avatar du membre
Mammouth du PHP | 1609 Messages

05 mai 2023, 15:04

Manque encore quelque chose dans ta formulation. En fonction de quoi telle ou telle ligne doit-elle être supprimée ?
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 17 Messages

05 mai 2023, 15:05

Le "si ça se trouve ne t'aidera pas", je vais te donner un code très complexe qui ne te sera d'aucune utilité pour la question posée , mais si tu veux savoir ok :

je parcours un fichier csv, dans chaque ligne (excepté l'entête") je regarde si les champs sont remplis, si dans une seule ligne il n'y a pas assez de champs remplis je considère que la ligne doit être supprimée .

Avatar du membre
Mammouth du PHP | 1609 Messages

05 mai 2023, 15:07

Bah dans ce cas pour chaque ligne tu vérifies si ce qui doit être rempli l'est et tu n'affiches la ligne que si c'est le cas.
foreach ($rows as $row) {
    if (/* colx non vide && coly non vide && ... */) {
        // afficher la ligne...
    }
}

Sinon
$linesToSkip = [0,1,255];
foreach ($rows as $i => $row) {
    if (!in_array($i, $linesToSkip)) {
        // afficher la ligne...
    }
}
Modifié en dernier par Saian le 05 mai 2023, 15:11, modifié 2 fois.
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 17 Messages

05 mai 2023, 15:11

c'est ce que je souhaite faire et c'est un topic d'aide où je demande comment faire
le problème c'est que je ne peux pas faire quelque chose du genre

$row_test != 0 .= && $row != 12

Avatar du membre
Mammouth du PHP | 1609 Messages

05 mai 2023, 15:12

C'est pas la ligne que tu dois tester ce sont les infos de la ligne... tu les récupères comment ?
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 17 Messages

05 mai 2023, 15:12

comme je le dis je ne sais pas à l'avance ce que je dois écrire entre les parenthèses (je ne sais pas quelles seront les lignes à enlever c'est aléatoire)

Avatar du membre
Mammouth du PHP | 1609 Messages

05 mai 2023, 15:14

foreach ($rows as $row) {
    if ($row['col1quidoitpasetrevide'] !== '' && $row['col2quidoitpasetrevide'] !== '' /* && etc */) {
        // afficher la ligne...
    }
}

Fais un effort au lieu de te braquer.
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 17 Messages

05 mai 2023, 15:15

Je les ai mis dans une variable qui a cette forme $ligne_a_supprimmer = 5-9-8-25-63;
$sup_lignes = explode("-", $ligne_a_supprimmer);

et puis là je les ai toutes

Eléphanteau du PHP | 17 Messages

05 mai 2023, 15:16

non je crois que tu ne comprends pas : je ne connais pas les rows à l'avance, ce qui implique que je ne peux pas écrire ($row1 && $row2)
car pour écrire ($row1 && $row2) il faut avoir qu'il y a 2 $rows seulement