2010-04-16 7 views

Répondre

2

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]; 
} 
+0

Exactement ce que je cherchais .. Merci! –

+0

Comment pourrais-je obtenir "principal" en utilisant cela? –

0

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.

  1. Tous ces champs doivent être séparés et stockés dans des colonnes séparées.
  2. 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

+0

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. –

+0

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 –

+0

Je n'ai pas codé cette partie, c'est l'astérisque. Je travaille juste avec les données qui me sont données :) –

Questions connexes