J'ai un champ qui est dans ce formatobtenir seulement certaines données de la table
5551112391^HUMAN^HUMAN-800-800^6-main^^
Comment puis-je saisir que les chiffres 5551112391
avant le caractère ^
?
Feriez-vous cela avec regex?
J'ai un champ qui est dans ce formatobtenir seulement certaines données de la table
5551112391^HUMAN^HUMAN-800-800^6-main^^
Comment puis-je saisir que les chiffres 5551112391
avant le caractère ^
?
Feriez-vous cela avec regex?
Vous pouvez utiliser exploser:
$var = '5551112391^HUMAN^HUMAN-800-800^6-main^^';
$arr = explode('^',$var);
$num = $arr[0];
utilisant l'expression rationnelle:
$var = '5551112391^HUMAN^HUMAN-800-800^6-main^^';
if(preg_match('/^(\d+)/',trim($var),$m)){
$num = $m[1];
}
Vous le faites de façon tout à fait tort.
Vous traitez la base de données mysql comme un fichier texte plat. Mais ce n'est pas.
Pour obtenir uniquement certaines données de la table, vous ne devriez pas sélectionner toutes les lignes, puis de comparer une à une, mais la base de données se faire pour vous:
SELECT * FROM table WHERE nombre = 5551112391
Ce n'est pas mon choix. Le numéro est stocké dans le champ userdata avec toutes les autres informations, donc je dois le faire de cette façon. –
Ce n'est pas une excuse, @zx essayer d'apprendre l'utilisation de la base de données un peu. Nous stockons tous les données utilisateur dans nos tableaux. Rien de mal à le normaliser aussi –
Je n'ai pas codé cette partie, c'est l'astérisque. Je travaille juste avec les données qui me sont données :) –
Overgill Regex, agréable ...
Qu'en est-il de simple cast à int? Fonctionnera parfaitement bien si le nombre est au début des données. Et sans aucun doute plus rapide que regexps ...
$var = '5551112391^HUMAN^HUMAN-800-800^6-main^^';
$num = (int)$var;
http://www.php.net/manual/en/language.types.type-juggling.php
Exactement ce que je cherchais .. Merci! –
Comment pourrais-je obtenir "principal" en utilisant cela? –