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

Eléphanteau du PHP | 37 Messages

26 févr. 2012, 18:33

Bonjour,
Comment fait-on pour enregistrer plusieurs données dans un même champ d'une table?

ViPHP
xTG
ViPHP | 7331 Messages

26 févr. 2012, 19:05

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.

Eléphanteau du PHP | 37 Messages

26 févr. 2012, 19:26

et si ces données proviennent d'un formuaire?

ViPHP
xTG
ViPHP | 7331 Messages

26 févr. 2012, 20:24

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 ?

Eléphanteau du PHP | 37 Messages

26 févr. 2012, 20:36

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.

ViPHP
xTG
ViPHP | 7331 Messages

26 févr. 2012, 22:23

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

Eléphanteau du PHP | 37 Messages

27 févr. 2012, 15:05

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.

ViPHP
xTG
ViPHP | 7331 Messages

27 févr. 2012, 15:56

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

Eléphant du PHP | 179 Messages

27 févr. 2012, 16:23

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

Eléphanteau du PHP | 37 Messages

27 févr. 2012, 18:34

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.

ViPHP
xTG
ViPHP | 7331 Messages

27 févr. 2012, 20:20

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. ;)

Eléphanteau du PHP | 37 Messages

27 févr. 2012, 20:53

Ok en tout cas merci pour tout les gars.