Page 1 sur 1

Enregistrer plusieurs données dans un même champ d'une table

Posté : 26 févr. 2012, 18:33
par valmeras
Bonjour,
Comment fait-on pour enregistrer plusieurs données dans un même champ d'une table?

Re: Enregistrer plusieurs données dans un même champ d'une t

Posté : 26 févr. 2012, 19:05
par xTG
Tu les rassemblent dans la même chaîne de caractères avec un caractère de séparation pour pouvoir les réextraire par la suite.

Re: Enregistrer plusieurs données dans un même champ d'une t

Posté : 26 févr. 2012, 19:26
par valmeras
et si ces données proviennent d'un formuaire?

Re: Enregistrer plusieurs données dans un même champ d'une t

Posté : 26 févr. 2012, 20:24
par xTG
Cela revient au même, tu concatènes les variables dans une même variable.
Des données ce sont des données et ce d'où qu'elles viennent. ;)

Mais à voir ta question cela ne te semble pas bénin à ce que je vois...
Pourrais-tu nous dire ce qui te bloque afin qu'on détaille si nécessaire ou qu'on te renvoi vers un tutorial/cours ?

Re: Enregistrer plusieurs données dans un même champ d'une t

Posté : 26 févr. 2012, 20:36
par valmeras
en fait j'ai des données qui sont stockées dans une table et je veux les afficher dans un tableau avant de les modifier. mais j'ai un serieux problème avec les variables de session. alors voci le code :
<?php

// Connexion au serveur
include("connexion_db.php");

// Selection des données dans la table
$requete = 'SELECT qual_rub_origin_dem FROM preferences_2';
$resultats = mysql_query($requete);

$resultat_requete = mysql_result($resultats ,"0", "qual_rub_origin_dem");
eval($resultat_requete);

// Affichage des données dans un tableau avec une boucle foreach
?>
<form action="traitement.php" method="post">
<?php

echo "<table border=1 width=350 cellspacing=0>";
foreach($_SESSION['rub_1'] as $cle=>$valeur)
    {
      echo "<tr><td colspan=\"3\" >".$cle."</td></tr>";
      foreach($valeur as $cle1=>$valeur2)
        {
?>
<tr><td><?php echo $cle1 ?></td><td><input type="text" name="qual_rub" value="<?php echo $valeur2 ?>" size="60" /></td></tr>
<?php
        }
    }

  echo "</table>";

?>

<p><input type='submit' name='enregistrer' value='Enregistrer' /></p>
<p><input type='submit' name='ajout' value='Ajouter un champ' /></p>
<p><input type='submit' name='supprime' value='Supprimer un champ' /></p>
</form>

<?php


// Déconnexion au serveur
mysql_close();

?>
et voici la table :
--
-- Structure de la table `preferences`
--
CREATE TABLE IF NOT EXISTS `preferences_2` (
`qual_rub_origin_dem` text NOT NULL COMMENT 'liste des rubriques pour origine de la demande d''amélioration',
`qual_rub_source_dem` text NOT NULL COMMENT 'liste des rubriques pour source de la demande d''amélioration',
`qual_rub_sujet_dem` text NOT NULL COMMENT 'liste des rubriques pour le sujet de la demande d''amélioration',
`qual_sect_prof_dem` text NOT NULL COMMENT 'liste des secteurs professionnels'
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='préférences du client :
secondaire';
--
-- Contenu de la table `preferences`
--
INSERT INTO `preferences_2` (`qual_rub_origin_dem`, `qual_rub_source_dem`,
`qual_rub_sujet_dem`, `qual_sect_prof_dem`) VALUES ('$_SESSION[''rub_1''][0][0]="proposition spontannée";\r\n\r\n$_SESSION[''rub_1''][0][1]="réclamation client (patient / résidant)";\r\n\r\n$_SESSION[''rub_1''][0][2]="non respect d''une procédure / processus";\r\n\r\n$_SESSION[''rub_1''][0][3]="non- conformité";\r\n\r\n$_SESSION[''rub_1''][0][4]="autre";',
'$_SESSION[''rub_2''][0][0]="personne";\r\n\r\n$_SESSION[''rub_2''][0][1]="audit interne";\r\n\r\n$_SESSION[''rub_2''][0][2]="l''audit externe";\r\n\r\n$_SESSION[''rub_2''][0][3]="revue de direction";\r\n\r\n$_SESSION[''rub_2''][0][4]="état- major";\r\n\r\n$_SESSION[''rub_2''][0][5]="colloque de service";\r\n',
'$_SESSION[''rub_3''][0][0]="processus";\r\n\r\n$_SESSION[''rub_3''][0][1]="matériel";\r\n\r
\n$_SESSION[''rub_3''][0][2]="locaux";\r\n\r\n$_SESSION[''rub_3''][0][3]="document";\r\n\r
\n$_SESSION[''rub_3''][0][4]="autre";\r\n\r\n\r\n\r\n\r\n\r\n',
'$_SESSION[''secteur_prof''][0][0]="administration";\r\n$_SESSION[''secteur_prof''][0][1]="a mbulancier";\r\n$_SESSION[''secteur_prof''][0][2]="animation";\r\n$_SESSION[''secteur_pro f''][0][3]="cafétéria";\r\n$_SESSION[''secteur_prof''][0][4]="corps médical";\r\n$_SESSION[''secteur_prof''][0][5]="cuisine";\r\n$_SESSION[''secteur_prof''][0][
6]="hôtelier /
nettoyage";\r\n$_SESSION[''secteur_prof''][0][7]="technique";\r\n$_SESSION[''secteur_prof'
'][0][8]="médico-
 
technique";\r\n$_SESSION[''secteur_prof''][0][8]="qualité";\r\n$_SESSION[''secteur_prof''][0
][10]="secrétariat / accueil";');
Pour afficher les infos dans un tableau j'y arrive, mais pour les modifications là je seche et j'ai vraiment besoin d'aide.

Re: Enregistrer plusieurs données dans un même champ d'une t

Posté : 26 févr. 2012, 22:23
par xTG
Euh... Un fichier .sql n'a pas connaissance des variables de session...
Faut passer par un script PHP.
Voici un exemple : http://phpdebutant.org/article67.php

Re: Enregistrer plusieurs données dans un même champ d'une t

Posté : 27 févr. 2012, 15:05
par valmeras
Les variables de sessions sont enregistrer sciemment dans la base de données et pour afficher ces données j'utilise la fonction
eval()
. Mais le problème c'est lors de la modification des données qui ont été affichées dans le tableau : je veux les modifier puis les enregistrer avec ces mêmes variables de sessions dans la table mais j'y arrive pas.

Re: Enregistrer plusieurs données dans un même champ d'une t

Posté : 27 févr. 2012, 15:56
par xTG
Mais qui a bien pu te mettre en tête de fonctionner ainsi ! O___o
C'est une horrible machine à gaz... Que dis-je à uranium !

Tu trouveras tous les outils nécessaires dans mon dernier lien pour faire un script correct...

Re: Enregistrer plusieurs données dans un même champ d'une t

Posté : 27 févr. 2012, 16:23
par Thibaud C
Sinon tu peux utiliser le serialize/unserialize json_encode/decode pour stocker des tableaux en bdd !
Mais je rejoins xTG pour dire que la façon que tu nous montre, est ... hallu...cinante

Re: Enregistrer plusieurs données dans un même champ d'une t

Posté : 27 févr. 2012, 18:34
par valmeras
j'aurais bien voulu fonctionner autrement mais je n'est pas le choix. c'est un travail qui m'a été de faire et je ne peux rien modifier au cahier de charge.

Re: Enregistrer plusieurs données dans un même champ d'une t

Posté : 27 févr. 2012, 20:20
par xTG
L'informaticien qui t'a dis de faire ainsi tu pourras le fouetter de notre part...
C'est un vrai souillon ou un incompétent total !

Dans tous les cas tu ne peux pas passer par ce fichier SQL pour faire la modification...
Alors après à toi de voir... Soit tu continues avec l'optique "foutage de gueule" et tu créés un fichier .sql contenant un UPDATE avec les variables correspondantes ($_POST) puis un eval() sur tout ça pour l'exécuter.
Ou bien tu potasses le lien que je t'ai fournis...

A toi de voir si tu veux continuer à détruire le code ou pas.
Car il y a des limites à la débilité, et même si tu es stagiaire tu es en droit de mettre en évidence des énormités... On demande souvent à un stagiaire d'être force de proposition. ;)

Re: Enregistrer plusieurs données dans un même champ d'une t

Posté : 27 févr. 2012, 20:53
par valmeras
Ok en tout cas merci pour tout les gars.