Vous n'êtes pas identifié(e).
Pages : 1
salut!!
ce n'est pas exactement l'arborescence qui est en cause. en fait j'appelle une fonction "entete($maphrase, $lebas)". C'est elle qui pose problème.
J'ai changé la fonction pour ne plus avoir que "entete($maphrase)". $lebas me servait à savoir si une session est active ou pas, et si c'est le cas, on affiche un bouton déconnexion, sinon on affiche le formulaire de connexion. J'ai enlevé cette partie et ça marche. Je vais donc voir du côté de jquery si je peux faire un formulaire de connexion flottant ou caché.
Je vous remercie beaucoup pour vos interventions qui m'ont appris de nouvelles choses et m'ont permis de corriger certaines erreurs de mes codes.
Encore merci à tous!!!!:D
je crois ce n'est pas le code de ces pages qui pose problème. J'ai sorti une sauvegarde de 10 jours qui marche très bien. lorsque je remplace les fichiers par ceux de la sauvegarde, ça ne marche plus (alors qu'ils marchaient dans le répertoire de sauvegarde). Je ne sais pas d'où ça vient, mais je vais chercher et vous tenir au courant.
Bonne journée
non, j'ai bien mis session_start au début des 2 pages
...........
bonjour
var_dump($_SESSION) donne: array empty
Sur la page la même page je n'ai pas de variable $mail
kiku!! personne
je suis vraiment bloquée là, j'ai même essayé de nommer les sessions, mais toujours le même problème. Je crois qu'il ne transmet pas les variables de session. En effet, lorsque je fais (dans fiche_user.php)
FF me met undefined index: mail
et pourtant je les sauvegardes dès que la session est établie.
les cookies sont activés, d'ailleurs ça ne m'arrive qu'entre ces 2 pages, la navigation entre les autres pages n'entraine pas la fermeture de la session.
je retourner finalement à l'index en faisant simplement:
comme dans les autres formulaires
bonjour,
merci pour vos réponses.
la fonction connexion() sert à se connecter à la base. quand j'ai vu ta question, je l'ai mis avant la vérification de la session, mais est-ce que son ordre a de l'importance sur la session ( je ne le crois pas, mais il se peut que je me goures sur ça aussi).
ligne 21: je n'avais pas fait attention, désolée, id="etat" n'a rien n'a faire là.
J'ai mis id="form" pour pouvoir y appliquer des styles en css; sinon il se valide sur la même page vu que je n'ai pas d'attribut action.
la fonction verifier_isset($val) contient:
else
$mavar = '';
return $mavar;
Pour la ligne 34, le bouton annuler, j'ai ce que tu m'as dit moogli
<input type="button" name="annulation" value="Annuler" onclick="retourner();" />
mais ça ne me renvoie pas à l'index. J'ai aussi essayer avec header('location..') mais celui là me renvoie directement à l'index sans m'afficher le formulaire.
J'ai une clé primaire qui est "id" en auto_increment.
pour les 3 requêtes, si je les fait en une seule fois et que j'affiche le résultat avec une boucle comme mysql_fetch_assoc ou fetch_array, il ne m'affichera pas x fois (x étant le nombre de ligne dans la table absence) les informations contenues dans la table personne??
Quand je parle de déconnexion, c'est effectivement la session qui est fermée, mais comme je l'ai dit cela ne se passe qu'avec mozilla pas avec IE avec lequel ça ne me pose pas de problème.
Désolée Pierrot si ce que je fais te parait aberrant, mais ce n'est pas si évident pour moi. Ce que vous faites est vraiment formidable, vous vous donnez la peine non seulement de lire nos posts mais aussi d'essayer de nous aider au mieux. Mais si je fais des trucs qui te paraissent "stupides", dis toi que je ne le vois pas ainsi, sinon je ne l'aurai pas fais. J'aimerai bien pouvoir faire "le ménage " seule dans mon code, mais je fais des erreurs dont je ne me rends pas compte et c'est pour cela que j'ai lancé cette discussion.
pour le if(empty($ligne_ac)), j'ai affiché $ligne_ac dans le cas ou il ne trouve aucune ligne et il a affiché 0; donc je vais le remplacer par:
Merci
++
Bonjour,
comme c'est dit dans le titre, le code javascript ne marche pas sous IE7. Mais lorsque je vais dans les options et désactive JS puis le réactive, il marche, et il suffit que je réactualise la page pour que ça ne marche plus.
voici 2 codes reflétant le problème:
1- un formulaire permettant d'enregistrer une application dans la base, ajouter_application.php
else
$lebas=2;
entete("Nouvelle application", $lebas);
/********************** Ajout d'un type d'application à la liste déjà existante *************************************/
?>
<fieldset class="absence_personne"> <legend> Nouveau type d'applications </legend>
<form method="post" id="form">
<table cellspacing=20 cellpadding=2 align="center" class="tab_formulaire">
<span id="erreur"> </span>
<tr> <label>
<td> Application <font color="red" size=2> * </font> </td> <td> <input type="text" name="projet" id="projet" size=30 value="<?php if(isset($_POST['projet'])) echo $_POST['projet']; ?>" /> </td>
</label> </tr>
<tr> <label>
<td> CCX <font color="red" size=2> * </font> </td> <td> <input type="text" name="ccx" maxlength=3 size=3 id="tab1" tabindex=1 onkeyup="Autotab(2, size, value)" value="<?php if(isset($_POST['ccx'])) echo $_POST['ccx']; ?>" /> </td>
</label> </tr>
<tr> <label>
<td> Version <font color="red" size=2> * </font> </td> <td> <input type="text" name="version" maxlength=8 size=8 id="tab2" tabindex=2 onkeyup="Autotab(3, size, value)" value="<?php if(isset($_POST['version'])) echo $_POST['version']; ?>" /> </td>
</label> </tr>
<tr> <label>
<td> CPI <font color="red" size=2> * </font> </td>
<td> <select name="cpi" id="tab3" tabindex=3 onchange="document.location = index.php"> <option> </option>
<?php $val =''; liste_nom("cpi", $val); ?>
</select> </td>
</label> </tr>
<tr> <label>
<td> </td> <td align="center"> <input type="submit" name="sauver" value="Enregistrer" onclick="return verifier_ajout_ap();" />
<input type="submit" name="annulation" value="Annuler" /> </td>
</label> </tr>
</table>
</form>
</fieldset>
<div id="cacher1"> <a class="tips" href="liste_types/liste_types_ap.php" rel="liste_types/liste_types_ap.php" title="Cliquez pour dérouler"> Voir les types d'applications </a> </div>
<?php
if ((!isset($_SESSION['mail'] ))&& (!isset($_SESSION['pwd'])))
{
refuser();
$lebas=1;
}
else
{
$lebas=2;
if (isset($_POST['sauver'])) //si on appuie sur "Enregistrer", récupérer les valeurs saisies
{
$projet = verifier_isset("projet");
$ccx = verifier_isset("ccx");
$version = verifier_isset("version");
$cpi = verifier_isset("cpi");
if ((empty($projet)) OR (empty($ccx)) or (empty($version)) or (empty($cpi)))
echo '<script type="text/javascript"> alert ("Veuillez remplir tous les champs."); </script>';
else
{
//vérifier que l'application n'est pas déjà saisie
$existe = existence_ap($projet, $ccx);
if($existe)
echo '<script type="text/javascript"> alert ("Cette version de l\'application existe déjà"); </script>';
else
{
$id = get_id($cpi);
$inserer = mysql_query(' INSERT INTO type_application VALUES("'.$projet.'", "'.$ccx.'",
"'.$version.'", "'.$id.'") ');
if ($inserer)
echo '<script type="text/javascript"> alert (" Application joutée "); </script>';
else
echo '<script type="text/javascript"> alert ("Erreur! L\'insertion a échoué "); </script>';
}
}
}
if (isset ($_POST['annulation']))
{
header("location:index.php");
}
}
?>
</div>
</body>
</html>
2- le code de "return verifier_ajout_ap();" qui se trouve dans "fonctionsjs.php"
Je rappelle que j'ai activé javascript.
je vous remerci d'avance
Bonjour,
j'ai une première page (chercher_user.php) dans la page j'ai une liste déroulante permettant de choisir un acteur afin d'afficher toutes ses informations et une 2ième page (fiche_user.php) où j'affiche ses informations.
chercher_user.php:
include_once ("fonctions.php");
include_once ("fonctionsjs.php");
if ((!isset($_SESSION['mail'] ))&& (!isset($_SESSION['pwd'])))
{
$lebas=1;
}
else
{
$lebas=2;
}
entete("Rechercher un acteur", $lebas);
connexion();
/*******************************************************************************************/
?>
<form method="post" id="form" id="etat">
<fieldset class="absence_personne"> <legend> Rechercher une personne </legend>
<table cellspacing=20 cellpadding=2 align="center">
<span id="erreur"> </span>
<tr> <label>
<td> Choisir un acteur </td>
<td> <font color="red" size=2> * </font> <select name="personne" id="etat"> <option> </option>
<?php $val =''; liste_nom("tout", $val); ?>
</select> </td>
</label> </tr>
<tr> <label>
<td> </td> <td align="center"> <input type="submit" name="sauver" value="Chercher" onclick="return verifier_ajout();" />
<a href="index.php" style="text-decoration: none"> <input type="submit" name="annulation" value="Annuler" /> </a></td>
<!-- le input de 'annuler' se comprtait de la mm façon que 'chercher', j'ai donc été obligée de mettre un <a href> pour retourner à l'accueil -->
</label> </tr>
</table>
</fieldset>
</form>
<?php
if (isset($_POST['sauver']))
{
$acteur = verifier_isset('personne');
if(empty($acteur))
echo '<script ttype="text/javascript"> alert("Veuillez choisir un acteur"); </script>';
else
header('location: fiche_user.php?personne='.$acteur.'');
}
?>
</div> </div>
</body>
</html>
J'avais d'abord fait la soumission en précisant l'attribut action dans la balise form, mais après avoir remarqué le problème j'ai changé, sans succès d'ailleurs.
fiche_user.php:
include_once ("fonctions.php");
include_once ("fonctionsjs.php");
connexion();
//vérification de la session
if ((!isset($_SESSION['mail'] ))&& (!isset($_SESSION['pwd'])))
{
$lebas=1;
}
else
{
$lebas=2;
}
entete("Fiche acteur", $lebas);
if(isset($_GET['personne'])) //récupération de la personne de la page afficher_users.php à travers <a href...>
$personne = $_GET['personne'];
else
$personne = verifier_isset("personne");
if (!empty($personne))
{
echo '<div class="div1">';
//recherche de l'identifiant de la personne
$lid1 = mysql_query('select id, profil, email, telephone, acteur from personne where acteur="'.$personne.'"');
if ($lid2=mysql_fetch_assoc($lid1))
{
echo '<table cellpadding=10 align="center" id="tab_acteur"> <caption> <b><u>Informations personnelles</u></b> <br/><br /> </caption>';
$identif = $lid2['id']; //récupération de l'id pour les comparaisons ultérieures
echo '<tr> <td> Acteur </td> <td>'.$lid2['acteur'].'</td> </tr>';
echo '<tr> <td> Profil </td> <td>'.$lid2['profil'].'</td> </tr>';
echo '<tr> <td> E-mail </td> <td>'.$lid2['email'].'</td> </tr>';
echo '<tr> <td> Téléphone </td> <td>'.$lid2['telephone'].'</td> </tr>';
//compte le nombre de fois que la personne apparait dans la table absence
$absence = mysql_query('select COUNT(*) from absences where id="'.$identif.'"');
$nb_absence = mysql_fetch_assoc($absence);
if (!empty($nb_absence))
echo '<tr> <td> Nombre d\'absences </td> <td>'.$nb_absence['COUNT(*)'].'</td> </tr>';
else if (empty($nb_absence))
echo '<tr> <td> Nombre d\'absences </td> <td> 0 </td> </tr>';
//compte le nombre de fois que la personne apparait dans la table activite
$activites = mysql_query('select COUNT(*) from activite where id_acteur_pack="'.$identif.'" or id_acteur_qualif="'.$identif.'"');
$nb_activites = mysql_fetch_assoc($activites);
if (!empty($nb_activites))
echo '<tr> <td> Nombre d\'activités </td> <td>'.$nb_activites['COUNT(*)'].'</td> </tr>';
else
echo '<tr> <td> Nombre d\'activités </td> <td> 0 </td> </tr>';
//compte le nombre de fois que la personne apparait dans la table demande
$demandes = mysql_query('select COUNT(*) from demande where id_acteur_cpi="'.$identif.'"');
$nb_demandes= mysql_fetch_assoc($demandes);
if (!empty($nb_demandes))
echo '<tr> <td> Nombre de demandes </td> <td>'.$nb_demandes['COUNT(*)'].'</td> </tr>';
else
echo '<tr> <td> Nombre de demandes </td> <td> 0 </td> </tr>';
echo '</table> <br/>';
}
echo '<pre>
<a href="modifier_infos_user.php?personne='.$identif.'" >Modifier</a> <a href="chercher_user.php">Retour recherche</a> <a href="afficher_users.php">Liste des acteurs</a> </pre>';
echo "</div>";
echo "<div class='div2'>";
// ses absences
$lesabsences = mysql_query('SELECT nature, date_debut, date_fin FROM absences WHERE id="'.$identif.'"');
$ligne_ab = mysql_num_rows($lesabsences);
echo '<p style="text-align: center;"> <b><u>Absences</u></b> </p>';
if(empty($ligne_ab)) //si l'acteur n'est pas dans la table absence
echo "<p align='center'> Aucune absence enregistrée </p>";
else
{
echo '<table cellspacing=20 align="center" id="tab_acteur">
<th> Absences </th> <th> Début </th> <th> Fin</th>';
while($resultat1 = mysql_fetch_assoc($lesabsences))
{
echo '<tr align="center">';
echo '<td>'.$resultat1['nature'].'</td>';
$ddebut = formater_date($resultat1['date_debut']);
$dfin = formater_date($resultat1['date_fin']);
echo '<td>'.$ddebut.'</td>';
echo '<td> '.$dfin.'</td>';
echo '</tr>';
}
}
echo '</table> <br/><br/>';
echo '</div>';
echo '<div class="div3">';
//activités dans lesquelles il figure
$activite = mysql_query('SELECT code_application, version_application, TM, version_TM, type_activite
FROM activite WHERE id_acteur_pack="'.$identif.'" or id_acteur_qualif="'.$identif.'"');
$ligne_ac = mysql_num_rows($activite);
echo '<p style="text-align: center;"> <b><u>Projets</u></b> </p>';
if(empty($ligne_ac)) //si l'acteur n'est pas dans la table activité
echo '<p align="center"> Vous n\'avez travaillé sur aucun projet </p>';
else
{
echo '<table cellspacing=2 cellpadding=10 align="center" id="tab_acteur">
<th> Application </th> <th> Code </th> <th> Version </th> <th> Module</th> <th> Version module </th>
<th> Etat module </th> <th> Activité </th>';
while($resultat2 = mysql_fetch_assoc($activite))
{
echo '<tr align="center">';
echo '<td>'. get_application($resultat2['code_application']).'</td>'; //nom de l'application
echo '<td>'.$resultat2['code_application'].'</td>';
echo '<td>'.$resultat2['version_application'].'</td>';
echo '<td>'.$resultat2['TM'].'</td>';
echo '<td>'.$resultat2['version_TM'].'</td>';
echo '<td>'.$resultat2['type_activite'].'</td>';
echo '</tr>';
}
echo '</table> <br/><br/>';
}
echo '</div>';
echo '<div class="div4">';
//demandes par lesquelles l'acteur est concerné
$demande = mysql_query('SELECT libelle, application, version_application, debut_demande, fin_demande, fingesdem, etat_protocole,
date_protocole, etat_bilan, date_bilan, etat_demande
FROM demande WHERE id_acteur_cpi="'.$identif.'"');
$ligne_d = mysql_num_rows($demande);
echo '<p style="text-align: center;"> <b><u>Demandes</u></b> </p>';
if(empty($ligne_d))
echo " <p align='center'> Vous n'êtes concerné par aucune demande </p> ";
else
{
echo '<table cellspacing=2 cellpadding=10 id="tab_acteur">
<th> Libellé </th> <th> Application </th> <th> Version </th> <th> Début </th> <th> Fin </th>
<th> Etat </th> <th> Protocole </th> <th> Date protocole </th> <th> Bilan </th> <th> Date bilan </th>';
while($resultat3 = mysql_fetch_assoc($demande))
{
echo '<tr align="center">';
echo '<td>'.$resultat3['libelle'].'</td>';
echo '<td>'.$resultat3['application'].'</td>';
echo '<td>'.$resultat3['version_application'].'</td>';
echo '<td>'.$resultat3['debut_demande'].'</td>';
$find = formater_date($resultat3['fin_demande']);
echo '<td>'.$find.'</td>';
echo '<td>'.$resultat3['etat_demande'].'</td>';
echo '<td>'.$resultat3['etat_protocole'].'</td>';
$dproto = formater_date($resultat3['date_protocole']);
echo '<td>'.$dproto.'</td>';
echo '<td>'.$resultat3['etat_bilan'].'</td>';
$dbilan = formater_date($resultat3['date_bilan']);
echo '<td>'.$dbilan.'</td>';
echo '</tr>';
}
echo '</table>';
}
echo '</div>';
}
else
header('location: chercher_user.php');
?>
</div>
</div>
</body>
</html>
Donc lorsque je choisis une personne et que valide, je suis redirigée vers "fiche-user.php" mais je suis aussi déconnectée. Ce qui me parait bizarre car j'ai une autre (3ième) page qui contient la liste de tous les acteurs et on peut cliquer sur un nom pour voir la fiche dans "fiche_user.php", cette fois je ne suis pas déconnectée.
Ce que j'ai aussi remarqué c'est que le problème n'est visible que sous mozilla, sous IE7 tout va bien (paradoxale, car c'est souvent le contraire).
J'espère obtenir de l'aide pour m'éclairer sur le sujet.
+++
Bonjour,
sur une de mes pages, je suis j'utilise ajax et j'ai recours à mysql:
1- pour les accents ajax, je rajoute
au début du fichier et ça marche.
2- pour mysql, je rajoute
à la page qui appel les données mysql et
à al page de connexion à la base après
comme je l'ai dit, j'ai besoin de ces 2 choses sur la même page dont l'entête contient
.
J'ai vu un sujet similaire mais je n'ai pas compris la conclusion:
sujet abordant le même problème
je travaille sous wampserver et notepad.
Merci pour vos réponses
ok,
donc ce n'est pas facultatif contrairement à ce qui est dit
merci
bonjour,
j'ai vu le topic et j'ai fait la même démarche la première fois sans aucun changement, la 2ième fois en changeant le serveur de messagerie seul, la 3ième fois en changeant le serveur et le port utilisé (le code plus haut).
$mail: contient l'adresse du destinataire
$sujet: c'est le sujet
$msge: le message à envoyer
et le dernier paramètre étant optionnel, je le mettrai dès que le reste marchera.
Il se pourrait aussi que j'ai des restriction par rapport au serveur car je suis stagiaire. De toute façon j'en parlerai à mon tuteur dès son retour de vacances (dans 2 semaines).
merci, ++
je te remercie Jc pour toute ton aide, je vais suivre tes conseils
Salut,
1)
a) tables absences, activite et demande
les id de "activite" et de "demande" sont en auto_increment. Pour ce qui est de rentrer de mettre une clé primaire sur l'id de la table et de la personne, je ne l'ai pas fait parce que, d'après les modèles de tableaux déjà existants, il est possible de rentrer une activité ou une demande sans préciser la personne, donc cette colonne id_acteur_*** peut-être nulle.
J'ai exporté les tables et j'ai viré certains trucs que je croyais inutiles. on a par exemple:
(mais je ne demande si ce n'est pas contre sens car ça pointe sur une autre table dans laquelle le champ ne peut être nul).
b)pour la table absence, j'avais pensé mettre comme clé (id, date_debut, date_fin), comme cela, on est sûr d'avoir enregistré une seule fois l'absence d'une personne pour une même date. Et pendant la saisie, qui se fait à travers une interface php, je vérifie, lorsqu'on rentre une nouvelle absence, si les dates rentrées ne chevauchent pas celles déjà présentes dans la base.
Quand au reste, merci des recommandations, je m'y attèle de suite!!!!
PS: si tu connais un site où on explicite certaines subtilités sur les tables et les requêtes (principalement les jointures) je suis preneur.
à +
Bonjour,
j'ai un formulaire et on doit y choisir une personne qui travaille sur une activité. J'aimerai envoyer un mail à la personne choisie pour l'avertir qu'une tâche lui a été assignée.
J'utilise la fonction mail() de php pour l'envoi d'un mail simple (dans un premier temps). Mais j'ai un message sur le serveur de messagerie qui est de la forme: imap.xxxxx.fr
voilà ce que j'ai fait:
$rekete1 = mysql_query('SELECT email FROM personne WHERE id="'.$id.'"'); //$id, $sujet et $msge sont des paramètres de la fonction
while ($rekete2 = mysql_fetch_assoc($rekete1))
{
$mail = $rekete2['email']; //stockage de l'adresse mail
if(mail($mail, $sujet, $msge)) //si l'envoi a réussi
{
echo '<script type="text/javascript"> alert (" Email envoyé à '.$rekete2['acteur'].'" l\'email est: '.$mail.'") </script>';
}
else
echo '<script type="text/javascript"> alert (" Echec envoi mail à '.$rekete2['acteur'].'" l\'email est: '.$mail.'")</script>';
}
Voilà ce qu'il met comme erreur:
Warning: mail() [function.mail]: SMTP server response: HELO BAD unrecognized IMAP4 command in C:\wampServer2\www\planning\fonctions.php on line 391
Au début, j'avais laissé les valeurs défaut, à savoir
SMTP = localhost
smtp_port = 25
mais il n'arrivait pas à se connecter au serveur, j'ai donc mis l'adresse et j'ai vu sur GOOGLE que le service imap tournait sur le port 143.
j'ai parcouru le forum et trouvé des sujets similaires mais pas de solution qui soit en rapport avec mon erreur.
j'espère que quelqu'un pourrait m'éclairer sur ça
a+
Bonjour Jc
voilà les tables que j'ai créées:
table "activite"
table "demande"
table "absences"
et la table "personne"
Il y a beaucoup de clés étrangères sur d'autres tables comme tu as pu le remarquer.
les champs que je veux afficher sont:
acteur
profil
email
téléphone
application (seulement le nom de l'application)
code_application (on l'a 2 fois, donc je les afficherais dans 2 tableaux différents car ils ne concernent pas la même chose)
version_application (idem)
CPI (je fais une requête avec le "id_acteur_cpi" qui me retourne le CPI correspondant!!)
debut_demande
fin_demande
etat_demande, etat_protocole
date_protocole
etat_demande
date_demande
nature
date_debut (absences)
date_fin
TM
version_TM
etat_TM
etat_pack
etat_qualif
acteur_pack (que j'ai grâce à "id_acteur_pack)
acteur_qualif (avec "id_acteur_qualif")
Mais vu que le tableau contient beaucoup de champs, je me suis dit qu'il serait mieux, pour plus de lisibilité, d'afficher les informations dans différents tableaux, surtout que dans les tables "demande" et "activite" on a certains champs identiques portant sur 2 choses différentes.
Donc voilà comment je l'ai finalement fait:
tableau 1: les champs de "personne" et "absences"
tableau 2: les champs de "activite"
tableau 3: ceux de "demande"
J'arrive à les afficher, et ça marche; mais crois-tu que ça soit une bonne idée???
je te remercie pour tes réponses
quelqu'un saurait où se situe le bouton "résolu"??????????
Bonsoir,
après maintes essais, j'ai finalement affiché les informations en 3 fois? C'est à dire, les informations du profil et des absences dans un tableau, celles des projets sur lesquels l'acter a travaillé dans une 2nd, et les demandes le concernant dans un autre.
J'avais déjà implémenté cette solution, mais j'ai voulu tout affiché ensemble.
merci pour vos interventions et vos conseils.
bye!
Bonjour Jc et merci pour ta réponse.
En effet, la table de gauche (personne) contient toutes les personnes car j'ai une interface à partir de laquelle je choisis la personne dans une liste déroulant alimentée par cette table.
si je fais la syntaxe que tu m'as conseillée, j'ai une boucle infinie et les champs des tables "demande" et "activite" ne s'affichent pas.
voila ce que j'ai fait, avec en plus la récupération du nom pour avoir l'id correspondant afin de faire la comparaison:
$lid1 = mysql_query('select id from personne where acteur="'.$personne.'"');
$lid2 = mysql_fetch_assoc($lid1);
if ($lid2)
$identif = $lid2['id'];
//requête principale
$rekete = mysql_query(' select p.email, d.libelle, ab.date_debut, ab.date_fin, ab.nature, ac.code_application, ac.version_application,
ac.TM, ac.version_TM, ac.etat_TM, d.application, d.version_application
from personne AS p, absences AS ab, demande AS d, activite AS ac
where p.id="'.$identif.'" and
ac.id_acteur_pack = p.id or
ac.id_acteur_qualif = p.id or
d.id_acteur_cpi = p.id or
ab.id = p.id');
$resultat = mysql_fetch_assoc($rekete);
et dans la clause where, comment je peux travailler sur les clés primaires? j'ai besoin de l'égalité entre les clés secondaires de chacune des 3 autres tables avec la clé primaire de la table "personne". Les clés primaires des autres tables n'interviennent donc pas, à moins que je ne me trompe.
je crois j'ai une idée, mais elle n'est pas très aboutit.
Dans la table "personne", je mets comme clé un id_acteur, et dans les 3 autres tables j'aurai ce champ comme clé étrangère sur la table "personne". Dans la requête, je fais une jointure:
je ne l'ai pas encore essayé, je change le schéma de ma base puis je l'essaie. Je ne sais pas si c'est correct et si on peut faire des jointures multi-tables de la sorte, dîtes le si vous voyez un truc bizarre:D.
a +
salut!
merci pour vos réponses.
Mais si je laisse l'idée de créer la vue, et que je veuille faire:
avoir le nom, prénom de la personne (table personne) avec les absences qu'elle a eu (table absence), les demandes qui la concernent (table demande) et les activités auxquelles elle a participé (table activite). Est-ce que je peux faire une requête comme ça:
$variable = mysql_query("select p.nom, p.prenom, d.code, d.date, ab.date, ab.nature, ac.projet
from personne , absences ab, demande d, activite ac where
p.nom='$nom' and p.prenom='$prenom' and ab.nom='$nom' and ab.prenom='$prenom'
and d.acteur='$nom_complet' and ac.acteur='$nom_complet'" );
mais le problème avec cette requête est qu'elle ne me renverrai rien s'il y a une seule des conditions qui n'est pas remplie, or moi je veux qu'elle me renvoie celles qui sont remplies (car le nom est forcément dans la table personne, c'est à partir d'une liste déroulante du contenu de cette table que l'on a choisi la personne à chercher).
Avec des "or" à la place des "AND" je ne vois pas trop ce que ça peut donner.
PS: j'avais mis * pour ne pour faire court ici, sinon je préciserai les champs dont j'ai besoin.
bonne matinée
Bonjour,
je suis débutante en mysql et je bloque sur un problème, je travaille avec phpmyadmin..
voilà, j'ai 4 tables: "personne", "absences", "demande", "activite".
la table "personne" répertorie toutes les personnes connues par le système, la table "activite" comprend le projets sur lesquels elles ont travaillé, la table demande comprend les demandes adressées au services (et on y souvent, pas obligatoirement, le chef de projet), et la table "absences", c'est les absences.
j'aimerai afficher toutes les informations sur une personne sous forme d'un tableau en php. sachant que ces informations se trouvent dans ces 4 tables différentes, je ne sais pas trop comment construire la requête.
j'avais dans l'idée de faire une jointure entre les tables sur la condition du nom (récupéré par un formulaire). Mais la personne peut ne pas se trouver dans l'une de ces tables, et dans ce cas je ne veux pas afficher les champs correspondants.
Finaklement j'ai décidé de faire étape par étape en faisant des vues intermédiaires. J'ai d'abord fait une vue sur la table "personne", mais la requête me renvoie une erreur.
voila mes 2 requêtes pour l'instant :
[c] $table0 = mysql_query('CREATE VIEW latable AS select * from personne where nom="'.$nom.'" and prenom="'.$prenom.'"');
$condition = mysql_fetch_array($table0); [/c]
j'ai l'erreur suivante:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Après les heures passées à faire du php, je sais que c'est la requête de "$table0" qui pose problème.
j'espère avoir de l'aide, merci d'avance pour vos réponses
Pages : 1