cs_zakichane
Messages postés44Date d'inscriptionjeudi 23 juin 2005StatutMembreDernière intervention30 novembre 2005
-
21 oct. 2005 à 16:24
cs_zakichane
Messages postés44Date d'inscriptionjeudi 23 juin 2005StatutMembreDernière intervention30 novembre 2005
-
22 oct. 2005 à 18:06
J'ai realisé le code suivant pour stocker les valeur multiple de ma mist ds la base de donner mais ça marche pas merci de me guider a savoir mon erreur
<?
if(isset($_POST['os']) && !empty($_POST['os']))
$Col1_Array = $_POST['os'];
foreach($Col1_Array as $os);
mysql_query ("INSERT INTO tech (os) VALUES ('$os'))
?>
mon probleme ce ke le variable $os contien tous les valeur selectionné mais seulement la dernière valeur qui es stocker dans la bd
monoceros01
Messages postés420Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention20 mars 2006 22 oct. 2005 à 04:03
Il faut changer la structure de ta base de donnée en rajoutant une
table avec la liste des OS de chacun des utilisateurs et en la liant à
$tech via une clé étrangère qui est tout bêtement un champ qui fera
référence à la clé primaire de la table ainsi créée. (relation de type
one-to-many)
cs_zakichane
Messages postés44Date d'inscriptionjeudi 23 juin 2005StatutMembreDernière intervention30 novembre 2005 22 oct. 2005 à 05:03
ok mais je sais pas comment faire les relation de type one to many avec phpmyadmin et aussi je sais pas faire le code qui va gèrer tous cela vous pouvez m'aider
ou bien me proposer une autre solution??
monoceros01
Messages postés420Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention20 mars 2006 22 oct. 2005 à 05:46
Le principe est simple tu garde la table que t'as en enlevant le champ os
Tu crée une table os avec trois champs :
<li>id que sera ta clé primaire</li>
<li>id_tech qui fera référence à la clé primaire de la table $tech</li>
<li>os qui contiendra l'information désirée</li>
Ça donnera un truc comme ça
table $tech :
id : 1
nom : Dupont
etc......
table os
id : 1
id_tech : 1
os : winXP
id : 2
id_tech : 1
os : linux
etc...
Ainsi, il est facile de comprendre que l'utilisateur nommé Dupont
possède deux os via id_tech qui pointe vers l'id de cet utilisateur.
1/ Pour écrire les info dans la base, il suffit :
<li>
d'enregistrer l'utilisateur dans la table $tech</li>
<li>
de récupérer l'id généré (ta clé primaire est probablement en auto_increment), grace à mysql_insert_id()</li>
<li>
d'enregistrer la liste des os pour cet utilistaeur en prenant garde
d'inscrire l'id généré dans le champ id_tech pour que la relation
one-to-many fonctionne.</li>
2/ Pour récupérer les infos d'un utilisateur, il te suffit de faire un SELECT sur ta table $tech avec un WHERE id $id_user et sur ta table os avec un WHERE id_tech $id_user.
je doi obligatoirement creer une autre table pour stocker les choix multiple de Select??
ensuite j'ai pas compris comment je doi faire pour qu'il insert chaque element dans un champnormalement les multiple choix sont stocké dans un seul variable
Si tu ne met pas d'attribut value dans tes <option> ça ne renverra rien
L'attribut name doit être un tableau (os[])
Ainsi, en envoyant le formulaire via la méthode post, tu récupéreras par exemple :
$_POST["os"] = array(
1 => "winxp",
2 => "linux",
3 => "os2"
);
Donc lors de de l'envoi du formulaire ça donne :
$query "INSERT INTO $tech SET nom '$nom', ....."; // tout le bazard
mysql_query($query,$con_id);
Tu envois la requête, un normalement si tu as une clé primaire en
auto_increment celle-ci va s'incrémenter, et avec mysql_insert_id() tu
peux récupérer cette valeur
$last_id = mysql_insert_id();
Et tu n'as plus qu'à faire une boucle
foreach($_POST["os"] as $os)
{
$query "INSERT INTO os SET id_tech $last_id, os = '$os'";
cs_zakichane
Messages postés44Date d'inscriptionjeudi 23 juin 2005StatutMembreDernière intervention30 novembre 2005 22 oct. 2005 à 16:27
j'ai testé cela mais ça marche pas il integrent le contenu dans la table $tech mais il n'integre rien dans os
en + j'ai un autre probleme c'est que la table $tach signifie la table corespand a l'utilisateur connecté parceque j'ai creer une table pour chaque utilisateur et le probleme ici qu'il faus creer aussi une table os pour chaque utilisateur alors il me fau un variable ki reli chaque table $tech avec os corespon
id (clé primaire en auto_increment), id_utilisateur, os
Tu n'a besoin ni plus ni moins que de deux tables et ce pour TOUS LES
UTILISATEURS! C'est d'ailleurs la dedans que réside toute la puissance
des bases de données relationnelles.
D'ailleurs, je vois que tu as un champ "probleme" dans la table utilisateurs. S'il est possible qu'un utilisateur ait plusieurs problèmes, tu devrais faire une table probleme à l'image de la table os (avec des champs id, id_utilisateur, probleme). Il se formera ainsi entre la table utilisateur et probleme une relation one-to-many (un (ONE) utilisateur pour (TO) plusieurs (MANY) problèmes).
Si tu as du mal a comprendre ces concepts, je te conseille de
télécharger des scripts qui utilise les base de données (les scripts de
galerie par exemple), de les installer et de décrypter leur
fonctionnement :)
cs_zakichane
Messages postés44Date d'inscriptionjeudi 23 juin 2005StatutMembreDernière intervention30 novembre 2005 22 oct. 2005 à 17:30
tu ma male compri mon amis et je croi que je t'ai derangé n'est ce pas??
mainteneant je vai vous dire toute la problimatique ke j'ai
je sui entrain de realiser une interface local pour un centre d'appel pour l'assistance technique par telefone.
cette interface va permettre a nos technicien d'inscrir toutes les information qui concerne les gens qui vont leur appeller et c'est très important pour nous de savoir la durée des appelles qui a reçu chaque technicien et aussi ce technicien doi entrer les information concernant les client qui ont appellée dont le nom prenom .... et aussi le probleme et tous
et pour les technicien je les ajout dans une table "accee" pour la verification des login et password après la session prend le nom de tech
et j'ai les table suivant technicien01, technicien02, .... alors par example pour le technicien01 il s'identifier avec technicien01 la session prend la valeur technicien01 et dans la requette $techn=technicien01
c'est ça alors ce que je cherche a faire et apparament ça fonctionne très bien sauf ce probleme des systeme d'exploitation
monoceros01
Messages postés420Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention20 mars 2006 22 oct. 2005 à 17:56
Le problème c'est que visiblement le français n'est pas ta langue natale, et qu'effectivement on a du mal à se comprendre :p
Mais bon, tout ton problème réside je pense dans la structure de ta
base de données. Donc tu devrais tout simplement l'afficher pour qu'on
puisse parler la même langue =)
(dans phpmyadmin, il y a une fonction pour exporter la structure de la base de données).
Je t'invite aussi à te documenter sur la théorie qui entoure les base
de données relationnelles (relations, dépendances fonctionnelles,
etc...)
# phpMyAdmin SQL Dump
# version 2.5.3
# http://www.phpmyadmin.net #
# Serveur: localhost
# Généré le : Samedi 22 Octobre 2005 à 15:57
# Version du serveur: 4.0.15
# Version de PHP: 4.3.3
#
# Base de données: `callcenter`
#