[PHP] chaine de caractères dans BDD

chaine de caractères dans BDD [PHP] - PHP - Programmation

Marsh Posté le 04-07-2008 à 11:59:19    

Bonjour,
 
 
Voila ce que contient ma table jos_artforms_inbox :  
 
-item_data contient les infos saisies par l'utilisateur dans ces même champs dans l'ordre avec le point virgule ( ; ) comme séparateur.
 
exemple : nom;prenom;date_naissance;mdp etc etc ....
 
En fait je voudrais récupérer la 9, 16 et 17eme valeurs contenu dans item_data pour les transférer dans ma table "jos_users".
 
Je pense que cela doit etre possible en SQL ou PHP mais je n'ai aucunes pistes...
 
Merci


Message édité par robin101 le 04-07-2008 à 12:03:26
Reply

Marsh Posté le 04-07-2008 à 11:59:19   

Reply

Marsh Posté le 04-07-2008 à 12:05:12    

Il y a combien d'info dans ce champs, le nombre est-il fixe ? Si oui c'est facile, tu utilise la fonction explode en PHP, qui va te construire un tableau. Il te reste ensuite, à récupèrer la valeur des cases 8, 15 et 17 puisque l'indexation du tableau commence à 0.
 
@++

Reply

Marsh Posté le 04-07-2008 à 12:17:18    

Tout d'abord merci pour ta réponse aussi rapide !
 
les cases a récupérer seront toujours les 8, 15 et 17  
 
Pourrais tu brièvements s'il te plait me montrer comment utiliser la fonction explode ?
 
Car j'ai codé sa mais ...
 
<?php
 
mysql_connect("localhost", "root", "" ); // Connexion à MySQL
mysql_select_db("portail" ); // Sélection de la base portail
 
$reponse = mysql_query("SELECT item_data FROM jos_artforms_inbox" ); // Requête SQL
 
 
// Avec cette boucle, on liste uniquement le champ item_data qui contient toutes les infos utilisateurs ( exemple : nom;prenom;date_naissance;mdp etc etc ...)  :
 
while ($donnees = mysql_fetch_array($reponse) )
{
    echo $donnees['item_data'];
    echo "<br />";
}
 
$chaine = $donnees['item_data'];
$champs = explode (" ; ", $chaine);
 
  $boucle=0;
  while ($boucle < sizeof($champs)) {
    echo $chaine[$boucle];
    echo "n";
    $boucle++;  
  }
 
 
 
 
 
mysql_close(); // Déconnexion de MySQL
?>

Reply

Marsh Posté le 04-07-2008 à 12:20:32    

Pour récupérer la 8° valeur de $champs , tu passes par $champs[7] (car l'indexation du tableau commence à 0)....


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 04-07-2008 à 12:21:33    

Voici la fonction sur php.net ! http://fr.php.net/explode
 

Code :
  1. $val = explode(";",$record);
  2. $val8 = $val[7];
  3. $val15 = $val[14];
  4. $val17 = $val[17];


 
Tout simplement, pas besoin de faire une boucle WHILE comme dans ton exemple...
Explode crée un array dont l'index commence à 0.

Reply

Marsh Posté le 04-07-2008 à 18:02:55    

cvb a écrit :

Voici la fonction sur php.net ! http://fr.php.net/explode
 

Code :
  1. $val = explode(";",$record);
  2. $val8 = $val[7];
  3. $val15 = $val[14];
  4. $val17 = $val[17];


 
Tout simplement, pas besoin de faire une boucle WHILE comme dans ton exemple...
Explode crée un array dont l'index commence à 0.


 
 :non:  Non, petite erreur :

Code :
  1. <?php
  2. $val8 = $val[7];
  3. $val15 = $val[14];
  4. $val17 = $val[16];
  5. ?>

Message cité 1 fois
Message édité par Profil supprimé le 04-07-2008 à 18:03:31
Reply

Marsh Posté le 04-07-2008 à 20:59:10    


 
 
ok je me suis trompé sur le dernier indice ! :jap:


Message édité par cvb le 04-07-2008 à 20:59:45
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed