Besoin d'aide en php

Résolu/Fermé
programos Messages postés 5 Date d'inscription samedi 3 mars 2007 Statut Membre Dernière intervention 13 mars 2007 - 3 mars 2007 à 21:21
programos Messages postés 5 Date d'inscription samedi 3 mars 2007 Statut Membre Dernière intervention 13 mars 2007 - 13 mars 2007 à 19:27
salut
je suis en train de créer une base de donnée en langage php que j'ai nommé "emploi du temps". J'ai creé deux tables dans cette base :
la première nommé "faculté" ses attributs (codefac, nomfac, )
la deuxiémme nommée "département" ses attributs (codedep, nomdep, #codefac) //codefac est clé etrangere dans la table département.
j'ai rempli la table faculté, et pour remplir la table département j'ai un probleme d'afficher l'attribut #codefac. c'est à dire quand je clique sur faculté il ne doit etre affiché que les département de cette faculté
est ce qu'il y a quelqu'un qui peut m'aider à écrire le code source en php pour réaliser ça?
A voir également:

5 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
3 mars 2007 à 21:47
Salut,

Pour ce qui est de la requête: avoir les departements associés à telle fac, ça donnera ça:
$res = mysql_query("SELECT codedep, nomdep FROM departement, faculte 
WHERE faculte.codefac = departement.codefac
AND faculte.codefac = $fac");


Pour executer cette requête, il faut bien sûr que la variable $fac soit une clé de faculte.

Ensuite pour afficher ça, ça donnera:
while ($tab = mysql_fetch_assoc($res))
{
    echo 'Codedep :' . $tab['codedep'] . '  Nomdep: ' .$tab['nomdep'] . '<br>';
}


S'il y a quelque chose que tu ne comprends pas là-dedans, n'hésite pas à le dire.


0
programos Messages postés 5 Date d'inscription samedi 3 mars 2007 Statut Membre Dernière intervention 13 mars 2007
4 mars 2007 à 20:23
j'ai pas bien compris, voilà mon exemple :
voilà les pages php que j'ai creé ;

page 1 "conect.php"
<?php
function connect(){
$v="localhost";
$c="root";
$p="";
$base="emploi_du_temps";
mysql_connect($v,$c,$p)||die("connexion impossible");
mysql_select_db($base);
}
?>

page 2"base_de_donnée.php"
<?php
include"connect.php";
//creation de la table faculte
$fa="create table faculté(
codefac INTEGER(12) UNSIGNED not null AUTO_INCREMENT,
nomfac VARCHAR(50) not null UNIQUE,
numtelfac INTEGER(50)not null,
PRIMARY KEY(codefac))";
// creation de la table departement
$de="create table departement(
codedep INTEGER(20) UNSIGNED not null AUTO_INCREMENT,
nomdep VARCHAR(50) not null UNIQUE,
numteldep INTEGER(50)not null,
codefac INTEGER (12)UNSIGNED not null references faculte,
PRIMARY KEY(codedep))";
connect();
mysql_query($fa);
mysql_query($de);
mysql_close();
echo"go";
?>

page3"insertion.php"
<html>
<body>
<form id="form1" name="form1" method="post" action="">
<table width="200" border="0">
<tr>
<td>nom_faculte</td>
<td><label>
<input type="text" name="nomfac" />
</label></td>
</tr>
<tr>
<td>numero de telephone</td>
<td><label>
<input type="text" name="numtelfac" />
</label></td>
</tr>
<tr>
<td colspan="2"><label>
<input type="submit" name="insert" value="insert" />
<input type="reset" name="effacer" value="effacer" />
</label></td>
</tr>
</table>
</form>
<?php
include"connect.php";
if(isset($_POST["insert"]))
{
if((!empty($_POST["nomfac"]))&&(!empty($_POST["numtelfac"])))
{
$f=mysql_escape_string($_POST["nomfac"]);
$t=mysql_escape_string($_POST["numtelfac"]);
$requete="INSERT INTO faculte VALUES ('','$f','$t')";
connect();
mysql_query($requete);
mysql_close();
}
}
?>
</body>
</html>

page4"affiche.php"
<?php
include"connect.php";
$requete="SELECT * FROM faculte";
connect();
$result=mysql_query($requete);
mysql_close();
$i=1;
while($r=mysql_fetch_array($result))
{
echo "<a href=\"insertion2.php\"?codefac=$r[codefac]>$r[nomfac]</a> <a href=\"\">$r[numtelfac]</a><br>";

;
$i++;

}
?>

page5"insertion2.php"
<html>
<body>
<form id="form1" name="form1" method="post" action="">
<table width="500" border="0">
<tr>
<th scope="row">nom departement </th>
<td><input type="text" name="nomdep" /></td>
</tr>
<th scope="row">numero de telephone departement</th>
<td><input type="text" name="numteldep"/></td>
<tr>
<th scope="row"><input type="submit" name="insert" value="insert" /></th>
<td><input type="reset" name="effacer" value="effacer" /></td>
</tr>
</table>
</form>
<?php
include"connect.php";
$codemat=$HTTP_GET_VARS['codefac'];
if(isset($_POST["insert"]))
{
$nomdep=mysql_escape_string($_POST["nomdep"]);
$numteldep=mysql_escape_string($_POST["numteldep"]);
connect();
mysql_query("INSERT INTO departement VALUES ('','$nomdep','$numteldep','$codefac')");
mysql_close();
}
?>
</body>
</html>

et mon probleme est dans le code $HTTP_GET_VARS à la page 5 c'est à dire : comment porter l'attributs codfac de la table faculté vers la table département. dans la pgae 5, quand je remplie la table département je veux que l'attribut codfac s'affiche
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
6 mars 2007 à 21:04
Si j'ai bien compris, tu veux avoir le codefac pour le département que tu vas créer grâce à la page5 ?

Dans la page 4 tu as ça:
echo "<a href=\"insertion2.php\"?codefac=$r[codefac]>$r[nomfac]</a> <a href=\"\">$r[numtelfac]</a><br>"; 


Ca donne des liens allant dans la page 5 pour insérer des départements dans cette fac.
Pour garder une référence vers ce codefac dans le formulaire tu dois créer un champs invisible (hidden) et ayant pour nom codefac, puis tu lui donnes la valeur qu'il y a dans le lien.
<code><html>
<body>
<form id="form1" name="form1" method="post" action="">
<table width="500" border="0">
<tr>
<th scope="row">nom departement </th>
<td><input type="text" name="nomdep" /></td>
</tr>
<th scope="row">numero de telephone departement</th>
<td><input type="text" name="numteldep"/>
<input type="hidden" name="codefac" value="<? echo $_GET['codefac'] ?>" ></td>
<tr>
<th scope="row"><input type="submit" name="insert" value="insert" /></th>
<td><input type="reset" name="effacer" value="effacer" /></td>
</tr>
</table>
</form> 


Ensuite tu pourras récupérer ce codefac comme les autres champs du formulaire:
<?php
include"connect.php";

if(isset($_POST["insert"]))
{
    $nomdep=mysql_escape_string($_POST["nomdep"]);
    $numteldep=mysql_escape_string($_POST["numteldep"]);
    $codefac=mysql_escape_string($_POST['codefac']);
    connect();
    mysql_query("INSERT INTO departement VALUES ('','$nomdep','$numteldep','$codefac')");
    mysql_close();
}
?>
</body>
</html> 


Et il vaudrait mieux que tu testes si $_POST['codefac'] est un identifiant de fac valide, on ne sais jamais si l'utilisateur n'a pas bidouillé le fomulaire pour changer le champs hidden.
D'ailleurs en règle générale, il faut toujours vérifier ce qu'envoie l'utilisateur.

Et voilà :-)
0
programos Messages postés 5 Date d'inscription samedi 3 mars 2007 Statut Membre Dernière intervention 13 mars 2007
9 mars 2007 à 19:11
<input type="hidden" name="codefac" value="<? echo $_GET['codefac'] ?>" ></td>

j'ai esayé ce code mais ça ne marche pas cdr le codefac ne s'affiche pas dans la table departement cdr je ne peus pas recupérer le champs codefac avec l'istruction ;

if(isset($_POST["insert"]))
{
$nomdep=mysql_escape_string($_POST["nomdep"]);
$numteldep=mysql_escape_string($_POST["numteldep"]);
$codefac=mysql_escape_string($_POST['codefac']);
connect();
mysql_query("INSERT INTO departement VALUES ('','$nomdep','$numteldep','$codefac')");
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
programos Messages postés 5 Date d'inscription samedi 3 mars 2007 Statut Membre Dernière intervention 13 mars 2007
13 mars 2007 à 19:27
enfin j trouvé la sollution c'était dans le code :
echo "<a href=\"insertion2.php\"?codefac=$r[codefac]>$r[nomfac]</a> ;

j'aurais due l'écrire comme ça :
echo "<a href=\"insertion2.php?codefac=$r[codefac]\">$r[nomfac]</a> ;

c'est le caractere \" qui est mal placé
0