J'ai dans ma table un champ de type varchar(255).
Ce champ contient une quantité. On peut par exemple avoir "12" ou "1/2" ou "250g" ou "100ml" etc.
J'ai besoin de savoir si la valeur de mon champ est numérique ou non. Par exemple, "12" est numérique (même s'il est stocké sous forme de chaîne) mais "100ml" ne l'est pas.
Pensez-vous qu'il soit plus judicieux de les distinguer à l'aide d'expressions régulières ou en testant la "valeur" à l'aide d'un eval (ou quelque chose du même type) ou autre ?
J'ai essayé de comparer $monchamp avec (int)$monchamp mais mon script les trouve égaux même si $monchamp vaut "350g": quand je fais un echo des 2 valeurs, il affiche bien 350g et 350, mais quand je fais le test test d'égalité (avec "==") il me retourne true à chaque fois.
Voici mon code.
$ing est mon tableau renvoyé par ma requête sql, nb_i est le champ que je teste.
$le_nombre=(int)$ing["nb_i"];
if ($ing["nb_i"] == $le_nombre)
{
echo $ing["nb_i"] . " vaut " . $le_nombre;
}
Ce code m'affiche:350g vaut 350
Merci de vos conseils.