|
|
|
|
tonguim, le jeudi 22 juillet 2004 à 17:43:50bonjour,
d'apres moi pour 1 et 2 : from personnel, postedetravail"; un peu avant la ligne 42 ajoute where postedetravail.matricule = personnel.matricule JSS.j'ai.bon.la? |
J'essaie, et je te fais le rapport. |
Merci Jss; j'ai testé et ça marche. |
Mais De Rien
JSS.oui.j'ai.bon.là.:-) |
Bonjour,
je voudrais effectuer une requete sur 4 tables, et voudrai afficher le resultat de la requete dans un seul tableaux. J'ai pu realiser une jointure avec 2 tables, mais ait des problemes pour realiser une jointure entre 4 differentes tables. Mes tables table personnel(matricule varchar (10) not null, nom varchar (30) not null, prenom varchar (30) not null, sexe varchar (30) not null, profession varchar (40) not null, email varchar (20) not null, adresse varchar (40), telDomicile varchar (16), telPhoto varchar (16), grade varchar (20), primary key(matricule)) table postedetravail(codePoste varchar(10), telPoste varchar(10), codeService varchar(10), matricule(5), primary key (codePoste)) table direction (codeDir varchar (10) not null, nomDir varchar (50) primary key (codeDir)) table service (codeService varchar (10) not null, nomService varchar (50) not null, codeDir varchar (10), primary key (codeService)) mon code <?php // ligne 1 { $host = "localhost"; // ligne 4 $user = "root"; // ligne 5 $passwd = ""; // ligne 6 $dataB = "annuaireUo"; //ligne 7: chemin de la base de donnees // ligne 8 $connBD = mysql_connect ($host, $user, $passwd); //ligne 9: connection au serveur MySql or die("Erreur de connection ".mysql_error()) mysql_select_db ($dataB, $connBD); // ligne 11: connection a la BD or die("Erreur de selection ".mysql_error()) $InsertionPersonnel = "insert into personnel (matricule, nom, prenom, sexe, profession, email, adresse, telDomicile, telMobile, grade ) VALUES ('".$_POST['matricule']."', '".$_POST['nom']."', '".$_POST['prenom']."', '".$_POST['sexe']."', '".$_POST['profession']."', '".$_POST['email']."', '".$_POST['adresse']."', '".$_POST['telDomicile']."', '".$_POST['telMobile']."', '".$_POST['grade']."')"; // insertion des donnes dans la BD personnel $varcodePoste = $_POST['matricule'].$_POST['telPoste']; $InsertionPosteTravail = "insert into postedetravail (codePoste, telPoste, codeService, matricule) values ('".$varcodePoste."', '".$_POST['telPoste']."', '".$_POST['codeServ']."', '".$_POST['matricule']."')"; // insertion des donnes dans la BD poste de travail $InsertionDirection = "insert into direction (codedir, nomdir) values ('".$_POST['codeDir']."', '".$_POST['nomDir']."')"; // insertion des donnes dans la BD direction $InsertionService = "insert into service (codeService, nomService, codeDir, matricule) values ('".$_POST['codeServ']."', '".$_POST['nomServ']."', '".$_POST['matricule']."')"; // insertion des donnes dans la BD direction mysql_query ($InsertionPersonnel); mysql_query ($InsertionPosteTravail); mysql_query ($InsertionDirection); mysql_query ($InsertionService); //mysql_close(); // ligne 19 } //////////////////////////////////////// affichage des enregistrements dans un tableau //////////////////////////////// //$requete = "select * from personnel"; //selection de tous les enregistrements de la table personnel //$sql_query2 = "select * from postedetravail"; //selection de tous les enregistrements de la table postedetravail ligne 30 $requete ="select personnel.matricule, personnel.grade, personnel.nom, personnel.prenom, personnel.sexe, personnel.profession, personnel.email, personnel.telDomicile, personnel.telMobile, postedetravail.codePoste, postedetravail.telPoste, postedetravail.codeService, postedetravail.matricule direction.nomDir, service.nomService, from personnel, postedetravail, direction, service where postedetravail.matricule = personnel.matricule AND service.matricule = personnel.matricule AND direction.codeDir = service.codeDir"; $result = mysql_query($requete); //ligne 51 //<!--<table> -->// ligne 53 echo "<table border = '1' bordercolor = '#000080'>"; echo '<tr> <td><b>Matricule</b></td> <td><b>Grade</b></td> <td><b>Nom</b></td> <td><b>Prenom</b></td> <td><b>Sexe</b></td> <td><b>Profession</b></td> <td><b>E-mail</b></td> <td><b>Téléphone dom</b></td> <td><b>Téléphone mob</b></td> <td><b>CodePoste</b></td> </tr>'; $i=0; While($row=mysql_fetch_array($result)) //ligne 68 { if ($i%2==0) $couleur='#dfdfdf'; else $couleur='#ebebeb'; $i++; //ligne 74 echo' <tr> <td bgcolor="'.$couleur.'">'.$row['matricule'].' </td> <td bgcolor="'.$couleur.'">'.$row['grade'].' </td> <td bgcolor="'.$couleur.'">'.$row['nom'].'</td> <td bgcolor="'.$couleur.'">'.$row['prenom'].' </td> <td bgcolor="'.$couleur.'">'.$row['sexe'].'</td> <td bgcolor="'.$couleur.'">'.$row['profession'].'</td> <td bgcolor="'.$couleur.'">'.$row['email'].'</td> <td bgcolor="'.$couleur.'">'.$row['telDomicile'].'</td> <td bgcolor="'.$couleur.'">'.$row['telMobile'].'</td> <td bgcolor="'.$couleur.'">'.$row['codePoste'].'</td> </tr>'; } echo "</table>"; mysql_close(); //ligne 91 ?> |
Je suppose que personnel.matricule est identique à postedetravail.matricule. Si oui, attention à la cohérence des types VARCHAR(10) et (5)
$requete ="SELECT personnel.matricule, personnel.grade, personnel.nom, personnel.prenom, personnel.sexe, personnel.profession, personnel.email, personnel.telDomicile, personnel.telMobile, postedetravail.codePoste, postedetravail.telPoste, postedetravail.codeService, postedetravail.matricule ??? identique à personnel.matricule direction.nomDir, service.nomService, FROM personnel, postedetravail, direction, service WHERE personnel.matricule = postedetravail.matricule AND service.matricule = personnel.matricule ??? service.matricule n'existe pas AND service.codeService = postedetravail.codeService AND direction.codeDir = service.codeDir" ; Utilise des MAJUSCULES, cela facilite le lecture. |
L'exécution du code renvoie l'erreur suivante:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\annuaireuo\enregbd11.php on line 71 la ligne 71 est celle ci: While($row=mysql_fetch_array($result)) ce qui signifie que l'erreur est générée par la requête qui se fait plus haut. |
Pour maximiser vos chances d'obtenir des réponses à votre message veuillez s'il vous plaît :
Faire usage de formules de politesse (Bonjour, merci, SVP) Bonjour Prends l'habitude quand tu as ce message d'afficher la requête pour vérifier sa syntaxe et essaie là dans PhpMyAdmin. |
Bonjour,
merci pour tous vos conseils, que j'ai applique. Maintenant, le code ne genere aucune erreur; toutefois, il ne produit pas le resultat escompte: l'affichage des enregistrements. Pouvez-vous s'il vous plait me dire pourquoi, et comment puis je resoudre ce probleme? ====== <?php // ligne 1 { $host = "localhost"; // ligne 4 $user = "root"; // ligne 5 $passwd = ""; // ligne 6 $dataB = "annuaireUo"; //ligne 7: chemin de la base de donnees // ligne 8 $connBD = mysql_connect ($host, $user, $passwd); //ligne 9: connection au serveur MySql or die("Erreur de connection ".mysql_error()) mysql_select_db ($dataB, $connBD); // ligne 11: connection a la BD or die("Erreur de selection ".mysql_error()) $InsertionPersonnel = "insert into personnel (matricule, nom, prenom, sexe, profession, email, adresse, telDomicile, telMobile, grade) VALUES ('".$_POST['matricule']."', '".$_POST['nom']."', '".$_POST['prenom']."', '".$_POST['sexe']."', '".$_POST['profession']."', '".$_POST['email']."', '".$_POST['adresse']."', '".$_POST['telDomicile']."', '".$_POST['telMobile']."', '".$_POST['grade']."')"; // insertion des donnes dans la BD personnel $varcodePoste = $_POST['matricule'].$_POST['telPoste']; //concatenation du matricule et du num de tel du poste de travail $InsertionPosteTravail = "insert into postedetravail (codePoste, telPoste, codeService, matricule) values ('".$varcodePoste."', '".$_POST['telPoste']."', '".$_POST['codeServ']."', '".$_POST['matricule']."')"; // insertion des donnes dans la BD poste de travail $InsertionDirection = "insert into direction (codeDir, nomDir) values ('".$_POST['codeDir']."', '".$_POST['nomDir']."')"; // insertion des donnes dans la BD direction ligne 18 $InsertionService = "insert into service (codeService, nomService, codeDir, matricule) values ('".$_POST['codeServ']."', '".$_POST['nomServ']."', '".$_POST['matricule']."')"; // insertion des donnes dans la BD direction mysql_query ($InsertionPersonnel); mysql_query ($InsertionPosteTravail); mysql_query ($InsertionDirection); mysql_query ($InsertionService); //mysql_close(); // ligne 26 } //////////////////////////////////////// affichage des enregistrements dans un tableau //////////////////////////////// //$requete = "select * from personnel"; //selection de tous les enregistrements de la table personnel //$sql_query2 = "select * from postedetravail"; //selection de tous les enregistrements de la table postedetravail ligne 31 $requete ="SELECT personnel.matricule, personnel.grade, personnel.nom, personnel.prenom, personnel.sexe, personnel.profession, personnel.email, personnel.telDomicile, personnel.telMobile, postedetravail.codePoste, postedetravail.telPoste, postedetravail.codeService, postedetravail.matricule, direction.nomDir, service.nomService FROM personnel INNER JOIN postedetravail ON postedetravail.matricule = personnel.matricule INNER JOIN service ON service.codeService = postedetravail.codeService INNER JOIN direction ON direction.codeDir = service.codeDir"; $result = mysql_query($requete) or die (mysql_error()); //ligne 56 //<!--<table> -->// ligne 58 echo "<table border = '1' bordercolor = '#000080'>"; echo '<tr> <td><b>Matricule</b></td> <td><b>Grade</b></td> <td><b>Nom</b></td> <td><b>Prenom</b></td> <td><b>Sexe</b></td> <td><b>Profession</b></td> <td><b>E-mail</b></td> <td><b>Téléphone dom</b></td> <td><b>Téléphone mob</b></td> <td><b>CodePoste</b></td> <td><b>Direction</b></td> <td><b>Service</b></td> </tr>'; $i=0; While($row=mysql_fetch_array($result)) //ligne 73 { if ($i%2==0) $couleur='#dfdfdf'; else $couleur='#ebebeb'; $i++; //ligne 79 echo' <tr> <td bgcolor="'.$couleur.'">'.$row['matricule'].' </td> <td bgcolor="'.$couleur.'">'.$row['grade'].' </td> <td bgcolor="'.$couleur.'">'.$row['nom'].'</td> <td bgcolor="'.$couleur.'">'.$row['prenom'].' </td> <td bgcolor="'.$couleur.'">'.$row['sexe'].'</td> <td bgcolor="'.$couleur.'">'.$row['profession'].'</td> <td bgcolor="'.$couleur.'">'.$row['email'].'</td> <td bgcolor="'.$couleur.'">'.$row['telDomicile'].'</td> <td bgcolor="'.$couleur.'">'.$row['telMobile'].'</td> <td bgcolor="'.$couleur.'">'.$row['codePoste'].'</td> <td bgcolor="'.$couleur.'">'.$row['nomDir'].'</td> <td bgcolor="'.$couleur.'">'.$row['nomService'].'</td> </tr>'; } echo "</table>"; //mysql_free_result($result); mysql_close(); //ligne 96 ?> |
Bonjour
$requete ="SELECT personnel.matricule, personnel.grade, personnel.nom, personnel.prenom, personnel.sexe, personnel.profession, personnel.email, personnel.telDomicile, personnel.telMobile, postedetravail.codePoste, postedetravail.telPoste, postedetravail.codeService, postedetravail.matricule, direction.nomDir, service.nomService FROM personnel, postedetravail, direction, service WHERE postedetravail.matricule = personnel.matricule AND service.codeService = postedetravail.codeService AND direction.codeDir = service.codeDir";C'est comme cela que je vois ta requête, d'après tes tables. Mais explique exactement ce que tu veux extraire de ta base. <td bgcolor="'.$couleur.'">'.$row[matricule].' </td> <td bgcolor="'.$couleur.'">'.$row[grade].' </td> <td bgcolor="'.$couleur.'">'.$row[nom].'</td> <td bgcolor="'.$couleur.'">'.$row[prenom].' </td> <td bgcolor="'.$couleur.'">'.$row[sexe].'</td> <td bgcolor="'.$couleur.'">'.$row[profession].'</td> <td bgcolor="'.$couleur.'">'.$row[email].'</td> <td bgcolor="'.$couleur.'">'.$row[telDomicile].'</td> <td bgcolor="'.$couleur.'">'.$row[telMobile].'</td> <td bgcolor="'.$couleur.'">'.$row[codePoste].'</td> <td bgcolor="'.$couleur.'">'.$row[nomDir].'</td> <td bgcolor="'.$couleur.'">'.$row[nomService].'</td>J'ai enlevé les quotes dans les variables $row. |
Bonjour,
voici la structure de mes tables: table personnel (matricule varchar (5) not null, nom varchar (30) not null, prenom varchar (30) not null, sexe varchar (30) not null, profession varchar (40) not null, email varchar (20) not null, adresse varchar (40), telDomicile varchar (16), telMobile varchar (16), grade varchar (20), primary key(matricule)) table postedetravail (codePoste varchar(10), telPoste varchar(10), codeService varchar(10), matricule(5), primary key (codePoste)) table direction (codeDir varchar (10) not null, nomDir varchar (50) primary key (codeDir)) table service (codeService varchar (10) not null, nomService varchar (50) not null, codeDir varchar (10), primary key (codeService)) Je voudrais afficher dans le meme tableau, personnel.matricule, personnel.grade, personnel.nom, personnel.prenom, personnel.sexe, personnel.profession, personnel.email, personnel.adresse, personnel.telDomicile, personnel.Mobile, direction.nomDir, service.nomService, postedetravail.telPoste mais je n'y arrive pas depuis. Merci de votre aide. |
Salut
Essaie déjà cette requête SELECT personnel.matricule, personnel.grade, personnel.nom, personnel.prenom, personnel.sexe, personnel.profession, personnel.email, personnel.telDomicile, personnel.telMobile, postedetravail.codePoste, postedetravail.telPoste, postedetravail.codeService, direction.nomDir, service.nomService FROM personnel, postedetravail, direction, service WHERE postedetravail.matricule = personnel.matricule AND service.codeService = postedetravail.codeService AND direction.codeDir = service.codeDir;et affiche la simplement echo "<tr><td>$row[matricule]</td> <td>$row[grade]</td> <td>$row[nom]</td> <td>$row[prenom]</td> <td>$row[sexe]</td> <td>$row[profession]</td> <td>$row[email]</td> <td>$row[telDomicile]</td> <td>$row[telMobile]</td> <td>$row[codePoste]</td> <td>$row[nomDir]</td> <td>$row[nomService]</td></tr>Quand cela marchera, tu pourras mettre l'habillage |
moi aussi j'ai une probleme comme ça
aprés la remplissage de formulaire j'aurrai envies d'enregistrer dans une table |
| 14/11 17h09 | Installation rapide de LAMP (Apache+MySql+php) sous Linux | Debian |
| 07/02 23h57 | Equivalences logicielles pour GNU/Linux | Logiciel libre |
| 02/06 13h53 | [Hébergement] Choisir un hébergeur gratuit ou payant | Hébergement |
| 30/04 11h21 | Hébergement de machine virtuelles | Hébergement |
| 27/03 16h03 | [PHP] Méthodes de débogage | PHP |
| 27/08 22h56 | PHP - MySQL Requete entre deux tables | 6 |
| 29/03 01h01 | {PHP/MySQL] requete qui plante | 17 |
| 06/03 11h15 | Php/Mysql Requete moteur de recherche | 0 |
| 28/06 11h54 | [PHP-MySQL] probleme tableau et espacement | 3 |
![]() | WAMP Server - WAMP5 (WAMP signifiant Windows Apache Mysql PHP) est une plateforme de développement Web sous Windows. Il vous permet de... | Catégorie: Serveurs Licence: Freeware/gratuit |
![]() | MySQL - MySQL est une des systèmes de gestion de bases de données le plus répandu au monde. | Catégorie: Bases de données Licence: Open Source |
![]() | easyPHP - EasyPHP est un environnement de travail packagé comprenant le serveur web Apache, le système de gestion de bases de données... | Catégorie: Serveurs Licence: Open Source |
![]() | PHP Edit - PHPEdit est un environnement de développement intégré (IDE) sous Windows pour le langage PHP. Il offre un grand nombre de... | Catégorie: PHP Licence: Freeware/gratuit |
![]() | Lenovo X60Tablet Intel Core | Catégorie: Tablet PC | |
![]() | Samsung Q1b HSDPA VIA | Catégorie: Tablet PC | 1,145.50 € MicroChoix |
![]() | Samsung Q1U-CMXP Intel A110 | Catégorie: Tablet PC | 1,192.90 € MicroChoix |
![]() | Samsung Q1 Ultra WIP | Catégorie: Tablet PC | 887.50 € MicroChoix |