Splitter un texte en nombres

Jmgr Messages postés 67 Date d'inscription vendredi 28 décembre 2001 Statut Membre Dernière intervention 23 juin 2015 - 19 nov. 2002 à 22:48
Jmgr Messages postés 67 Date d'inscription vendredi 28 décembre 2001 Statut Membre Dernière intervention 23 juin 2015 - 22 nov. 2002 à 19:49
Je cherche à stocker les forum déja vus par les utilisateurs d'un forum que je crée, mais je ne désire pas utiliser le cookies qui sont je trouve, complexes pour pas grand chose.
Donc je voudrais stocker les nombres des ids des forum vus ds un champ "text" (PHPMyAdmin MySQL). Donc je pense les séparer pas une virgule par exemple.
Jusque la c'est facile, mais après, comment récuperer ces nombres et les stocker dans un tableau ?

a+

6 réponses

CalistX Messages postés 29 Date d'inscription lundi 25 mars 2002 Statut Membre Dernière intervention 9 octobre 2003
20 nov. 2002 à 13:51
Tu utilise la commande ereg comme ca :
$Tbl : Variable qui contient les nombres (avec les virgules)

ereg("," $Tbl, $NewTbl);

ensuite tu utilise la variable (ou sont stockés les nombres sous forme de tableau) $NewTbl.

Si jamais tu veux parcourir le tableau tu peux faire comme ca :

$i = 0
while($i <= count($NewTbl)) {
echo $NewTbl[$i];
$i++;
}

Tout ca fonctionne si tu récupére les nombres de ta base de données (donc déjà stockés). C bien ça que tu veux ?
0
CalistX Messages postés 29 Date d'inscription lundi 25 mars 2002 Statut Membre Dernière intervention 9 octobre 2003
20 nov. 2002 à 13:58
oups, j'ai oublié un ;
0
Jmgr Messages postés 67 Date d'inscription vendredi 28 décembre 2001 Statut Membre Dernière intervention 23 juin 2015
20 nov. 2002 à 16:39
Oui merci ^^
Euh, comment je peut ajouter à la suite de la chaîne qui contient les nombres un nouveau nombre ?
0
CalistX Messages postés 29 Date d'inscription lundi 25 mars 2002 Statut Membre Dernière intervention 9 octobre 2003
20 nov. 2002 à 20:43
Soit tu rajoute d'abord le nombre à un tableau:
si ton nombre c 12 tu fais:
$NewTbl[count($NewTbl) + 1] = 12;
et ensuite tu refais la boucle pour réobtenir la chaine avec des , entre les nombres :
$i = 0;
while ($i <= count($NewTbl)) {
$Chaine .= ",".$NewTbl[$i];
$i++;
}
Sinon je te conseille d'utiliser serialize, c une fonction pour rendre un tableau en chaine de caractére, tu stocke la chaine et après tu récupére ton tableau en faisant unserialize. Exemple :
$Tbl[0] = "12";
$Tbl[1] = "13";
La on a un tableau à deux éléments.
Tu stocke dans mysql serialize($Tbl);
Et après tu récupére ton champ Mysql, tu utilise unserialize($mon_champ_mysql);
et tu retrouve un tableau.
Si c pas assez clair, va voir dans la doc php (www.php.net) les fonctions serialize et unserialize.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CalistX Messages postés 29 Date d'inscription lundi 25 mars 2002 Statut Membre Dernière intervention 9 octobre 2003
20 nov. 2002 à 20:46
Ah, truc plus simple que la boucle pour réobtenir une chaine de caractére à partir d'un tableau, tu utilise implode:
$Tbl[0] = "12";
$Tbl[1] = "13";
$Chaine = implode(",", $Tbl);
A ce moment là, $Chaine = "12,13"
C tout
0
Jmgr Messages postés 67 Date d'inscription vendredi 28 décembre 2001 Statut Membre Dernière intervention 23 juin 2015
22 nov. 2002 à 19:49
merci ^^
0
Rejoignez-nous