Tableau avec EXPLODE

payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 - 20 mai 2010 à 17:10
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 - 22 juin 2010 à 09:18
Bonjour,

Je voudrais traiter les elements d'un tableau retournés par "explode".
J'ai ma chaine
$result = "quad core xeon";

Je voudrais faire un traitement qui cherche dans ma BDD chaque elements correspondant à "quad" "core" et "xeon". Je sais faire avec la chaine complete "quad core xeon" mais pas séparément.
Alors je fais :
$resultat = explode(" ",$result);

ce qui me renvoie :
$resultat[0] //quad
$resultat[1] // core
$resultat[2] // xeon
// mon traitement...

Mais ce n'est qu'un exemple, je pourrais avoir des choses tout a fait aléatoire, et je ne sais pas comment faire une instruction du genre
"tant qu'il y a des résultats", avec un while, ou je sais pas trop...

Pouvez vous m'eclaircir svp ? (en espérant avoir été assez clair)

Merci d'avance.

Ju'

2 réponses

Kronikerz Messages postés 18 Date d'inscription vendredi 11 juin 2010 Statut Membre Dernière intervention 10 septembre 2010
22 juin 2010 à 01:54
$result = "Hello tout le monde";

$resultat = explode(" ", $result);

// Count() -> Compte le nombre d'élément d'un tableau
for($i=0; $i< count($resultat); $i++){

$query = "SELECT * FROM nomDeLaBase WHERE nomDuChamp LIKE '".$resultat[$i]."'";
$exp = mysql_query($query);
$res = mysql_fetch_assoc($exp);

// Message en cas d'erreur
if( empty($res['nomDuChamp']) ){
echo "Le nom '".$resultat[$i]."' ne se trouve pas dans la base";
}
else{
echo "Le nom '".$resultat[$i]."' se trouve dans la base";
}

} // fin du for()


En espérant que ceci t'aide, je ne l'ai pas testé, mais le principe est correcte.
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
22 juin 2010 à 09:18
Bonjour et merci de ta réponse,
Au début j'avais fait comme tu viens de l'ecrire, avec un peu de recherche, mais entre temps on m'a orienté plutot vers un foreach

$delimiteurs = '#[ ,-]+#';
$results = preg_split($delimiteurs, $resultat);
foreach($results as $result)
{
  // mon traitement
}


Merci.
Bonne journée
0
Rejoignez-nous