Si la chaine commence par... alors...
Résolu
Aka13
Messages postés
184
Statut
Membre
-
Aka13 Messages postés 184 Statut Membre -
Aka13 Messages postés 184 Statut Membre -
Bonjour,
Ma table sql "pseudo" contient :
ABC123
ABC555
BDE221
ABC485
ZKK215
J'aimerais que si la chaine commence par "ABC", num sera égal à 1
J'aimerais que le résultat soit :
ABC123 : http://monsite.fr/1
ABC555 : http://monsite.fr/1
BDE221 : http://monsite.fr/2
ABC485 : http://monsite.fr/1
ZKK215 : http://monsite.fr/2
--
Cordiallement Aka13
Ma table sql "pseudo" contient :
ABC123
ABC555
BDE221
ABC485
ZKK215
J'aimerais que si la chaine commence par "ABC", num sera égal à 1
$pseudo = $row["pseudo"];
if ($pseudo ^ABC)
{$num = "1";}
else
{$num = "2";}
$url = "$pseudo : http://monsite.fr/$num";
echo "$url";
J'aimerais que le résultat soit :
ABC123 : http://monsite.fr/1
ABC555 : http://monsite.fr/1
BDE221 : http://monsite.fr/2
ABC485 : http://monsite.fr/1
ZKK215 : http://monsite.fr/2
--
Cordiallement Aka13
2 réponses
-
Problème résolu,
Au lieu de mettre :$pseudo = $row["pseudo"]; $test = substr($pseudo,0,3); if ($test == "ABC") {$num = "1";} if ($test == "XXX") {$num = "2";} if ($test == "KSJ") {$num = "3";} else {$num = "4";}
J'ai mis :$pseudo = $row["pseudo"]; $test = substr($pseudo,0,3); if ($test == "ABC") {$num = "1";} else if ($test == "XXX") {$num = "2";} else if ($test == "KSJ") {$num = "3";} else {$num = "4";}
Donc en gros remplacer "if" par "else if"
Merci à toi Groarh de m'avoir rappeller la fonction substr :) -
Salut,
y'a tout un tas de solutions.
> PHP :
- utiliser substr ou toute autre variante, combiné à une comparaison == ;
- utiliser substr_compare qui fait les deux en même temps ;
- utiliser une regexp (peut-être un peu exagéré).
> SQL :
utiliser LIKE, comme dans :SELECT * FROM table WHERE pseudo LIKE 'ABC%'
Tu as le choix des armes ;)-
Salut,
Pour SELECT * FROM table WHERE pseudo LIKE 'ABC%'
Je ne peut pas faire cette fonction, $pseudo est utiliser pour beaucoup d'autres choses dans mon code. Et j'ai besoin de IF et ELSE
Donc il me faudrait un style :if ($pseudo == "^ABC") {$num = "1";} else {$num = "2";}
Ou sinon tu pourrais m'expliquer pour substr ou substr_compare -
-
-
substr_compare est une fonction de comparaison de chaînes, elle renvoie un nombre indiquant la « différence » entre ces deux chaînes, basé sur une sorte d'ordre alphabétique. Si les chaînes sont identiques, elle renvoie 0.
Contrairement à str_compare, cette fonction permet de ne regarder que le début des chaînes : on lui donne un offset et une longueur. Dans notre cas, l'offset est 0 (le début de la chaîne) et la longueur 3.
if (0 == substr_compare($pseudo, 'ABC', 0, 3)) { $num = "1"; } else { $num = "2"; }
https://www.php.net/manual/fr/function.substr-compare.php -
Merci, mais comme j'ai beaucoup de comparaison a faire j'aurais préférer un code plus cour.
J'ai donc utiliser sa :
$pseudo = $row["pseudo"]; $test = substr($pseudo,0,3); if ($test == "ABC") {$num = "1";} else {$num = "2";}
Ce morceau de code va très bien mais si je veut faire + de valeurs, il me compte que le dernier if :$pseudo = $row["pseudo"]; $test = substr($pseudo,0,3); if ($test == "ABC") {$num = "1";} if ($test == "XXX") {$num = "2";} if ($test == "KSJ") {$num = "3";} else {$num = "4";}
Il ne me compte que KSJ ou le else
Comment remédier à sa ?
-