Récuperation des données d'une table

Résolu/Fermé
turkish15 Messages postés 13 Date d'inscription mardi 8 avril 2014 Statut Membre Dernière intervention 28 mai 2014 - Modifié par Chris 94 le 10/04/2014 à 02:18
nicelife90 Messages postés 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 - 10 avril 2014 à 18:31
Bonsoir, je souhaiterais récupérer les infos concernant, disons , une agence que j'aurais sélectionnée au préalable dans une liste déroulante.

Ce que j'ai, c'est que quand je sélectionne un groupe dans la 1ere liste, j'ai les agences qui appartiennent à ce groupe dans la seconde liste, par contre ce que je cherche à faire c'est quand je sélectionne une agence dans la seconde liste, j'aurais depuis la table, toute les infos concernant cette agence là que j'ai sélectionnée.

pour les listes j'utilise ce code:

<?php
session_start();
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "regions";
$connexion = mysql_connect($serveur, $admin, $mdp);
 mysql_select_db($base, $connexion);
 
 
if(isset($_POST['gexp'])){
    $_SESSION['gexp'] = $_POST['gexp'];
    echo 'vous avez choisi le Groupe d\'Exploitation '.$_SESSION['gexp'].'<br />'. '<br />';
}
if(isset($_POST['agency'])){
    $_SESSION['agency'] = $_POST['agency'];
    echo 'vous avez choisi l\'Agence '.$_SESSION['agency'].'<br />';
}
 
?>
Choisissez un groupe d'exploitation
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chg_gexp">
    <select name="gexp" id="gexp" onchange="document.forms['chg_gexp'].submit();">
        <option>- - - Choisissez un groupe d'exploitation - - -</option>
        <?php
            $sql1 = "SELECT 'id', 'nomgroupe'
                    FROM 'groupex'
                    ORDER BY 'id'";
            $rech_groupe = mysql_query($sql1);
            if($rech_groupe != false){
                while($ligne = mysql_fetch_assoc($rech_groupe)){  ?>
                    <option value="<?php echo $ligne['id']; ?>"
                    <?php if(isset($_SESSION['gexp'])
                            AND $_SESSION['gexp'] == $ligne['id'])
                            echo 'selected="selected"'; ?>>
                            <?php echo $ligne['nomgroupe']; ?>
                    </option>
                <?php
                }
            }
            mysql_free_result($rech_groupe);
            ?>
    </select>
</form>  
choisir une Agence
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chg_agency">
    <select name="agency" id="agency" onchange="document.forms['chg_agency'].submit();">
        <option>- - - Choisissez une sous-classe - - -</option>
        <?php
            if(isset($_SESSION['gexp'])){
                $sql2 = "SELECT 'code', 'nom'
                        FROM 'agences'
                        WHERE 'id' = ". $_SESSION['gexp'] ."
                        ORDER BY 'code';";
                $rech_agence = mysql_query($sql2);
                if($rech_agence != false){
                    while($ligne = mysql_fetch_assoc($rech_agence)){  ?>
                        <option value="<?php echo $ligne['code']; ?>"
                        <?php if(isset($_SESSION['gexp'])
                                AND$_SESSION['agency'] == $ligne['code'])
                                echo 'selected="selected"'; ?>>
                                <?php echo $ligne['nom']; ?>
                        </option>
                    <?php
                    }
                }
                mysql_free_result($rech_agence);
            }
            ?>
    </select>
 </form>

5 réponses

nicelife90 Messages postés 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 151
10 avril 2014 à 03:57
Voici un exemple similaire avec des ville et des quartier que je t'ai fais rapidement.

copie ceci dans un fichier index.php :

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>CCM DEMO</title>
</head>
<body>
<?php
/**
 * Début de la session
 */
if (!isset($_SESSION)) session_start();


/**
 * MySQL Info
 */
$bdd_host 		= "localhost";
$bdd_username 	= "trinity";
$bdd_pass 		= "trinity";
$bdd_port		= "3306";
$bdd_name 		= "ccm";


/*
| -------------------------------------------
| 			   MySQL Connection
| -------------------------------------------
*/
$mysqli = new mysqli($bdd_host, $bdd_username, $bdd_pass, $bdd_name, $bdd_port);
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
$mysqli->query("SET NAMES UTF8");
$mysqli->set_charset('utf8');



if (isset($_POST['ville'])){
$_SESSION['ville'] = $_POST['ville'];
echo 'Vous avez choisi la ville '.$_SESSION['ville'].'<br />';
}

if (isset($_POST['quartier'])){
$_SESSION['quartier'] = $_POST['quartier'];
echo 'Vous avez choisi la ville '.$_SESSION['ville'].' et le quartier '.$_SESSION['quartier'].'.';
}

?>


<p>Choisir une ville</p>
<form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="frm_ville">
  <select name="ville" onchange="document.forms['frm_ville'].submit();">
    <option>Choisir Ville</option>
    <?php
	$villes = $mysqli->query("SELECT 'id', 'name' FROM 'ville' ORDER BY 'id'");	
	while($ville = $villes->fetch_assoc()){ 
		echo '<option value="'.$ville['id'].'" ';
		if (isset($_SESSION['ville']) && $_SESSION['ville'] == $ville['id']) { echo 'selected="selected">'; } else {echo '>';} 
		echo $ville['name'];
		echo '</option>';
	}
	$villes->free_result();
	?>
	</select>
</form>


<p>Choisir un quartier</p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" id="frm_quartier">
  <select name="quartier" onChange="document.forms['frm_quartier'].submit();">
    <option>Choisir Quartier</option>
    <?php
	if (isset($_SESSION['ville'])){
		
		$quartiers = $mysqli->query("SELECT * FROM 'quartier' WHERE 'vid'=".$_SESSION['ville']." ORDER BY 'id'");
		
		while($quartier = $quartiers->fetch_assoc()){
			echo '<option value="'.$quartier['id'].'" ';
			if (isset($_SESSION['quartier']) && $_SESSION['quartier'] == $quartier['id']) { echo 'selected="selected">'; } else {echo '>';} 
			echo $quartier['name'];
			echo '</option>';
		}
	
		$quartiers->free_result();
	}
	?>
  </select>
</form>


<?php 
if (isset($_SESSION['ville']) && isset($_SESSION['quartier'])){
	
	$quartier_info = $mysqli->query("SELECT * FROM 'quartier' WHERE 'id'='".$_SESSION['quartier']."'")->fetch_assoc();

?>
<hr/>
<table width="500" border="1" summary="Ceci représente l'information su le quartier sélectionner.">
  <caption>
    Description du quartier séléectionné
  </caption>
  <tr>
    <th width="276" scope="row">Nom du quartier</th>
    <td width="214"><?php echo $quartier_info['name']; ?></td>
  </tr>
  <tr>
    <th scope="row">Taille du quartier</th>
    <td><?php echo $quartier_info['size']; ?></td>
  </tr>
  <tr>
    <th scope="row">Population</th>
    <td><?php echo $quartier_info['pop']; ?></td>
  </tr>
  <tr>
    <th scope="row">Langue Parlé</th>
    <td><?php echo $quartier_info['langue']; ?></td>
  </tr>
  <tr>
    <th scope="row">Description du quartier</th>
    <td><?php echo $quartier_info['description']; ?></td>
  </tr>
</table>

<?php }?>

</body>
</html>



copier ceci dans un fichier .sql et importe le dans mysql ou ce que tu utilise.

-- phpMyAdmin SQL Dump
-- version 3.5.1
-- http://www.phpmyadmin.net
--
-- Client: localhost
-- Généré le: Jeu 10 Avril 2014 à 01:54
-- Version du serveur: 5.5.24-log
-- Version de PHP: 5.3.13

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de données: 'ccm'
--
CREATE DATABASE 'ccm' DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
USE 'ccm';

-- --------------------------------------------------------

--
-- Structure de la table 'quartier'
--
-- Création: Jeu 10 Avril 2014 à 01:46
-- Dernière modification: Jeu 10 Avril 2014 à 01:48
--

CREATE TABLE IF NOT EXISTS 'quartier' (
  'id' int(5) NOT NULL AUTO_INCREMENT COMMENT 'UID du quartier',
  'vid' int(5) NOT NULL COMMENT 'ID de la ville',
  'name' varchar(30) COLLATE utf8_unicode_ci NOT NULL COMMENT 'nom du quartier',
  'description' mediumtext COLLATE utf8_unicode_ci NOT NULL COMMENT 'description du quartier',
  'size' varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Taille du quartier',
  'pop' varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT 'population du quartier',
  'langue' varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Langue parlé',
  PRIMARY KEY ('id')
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='quartier' AUTO_INCREMENT=7 ;

--
-- Contenu de la table 'quartier'
--

INSERT INTO 'quartier' ('id', 'vid', 'name', 'description', 'size', 'pop', 'langue') VALUES
(1, 1, 'Fabreville', 'Quatier situer au nord de laval', '175 KM', '15 000', 'Français'),
(2, 1, 'Saint-Rose', 'Quatier situer a proximiter de Fabreville', '186 KM', '15 896', 'Français'),
(3, 2, 'Verdun', 'Quartier défavoriser de la ville de montréal', '896 KM', '19 562', 'Anglais'),
(4, 2, 'Outremont', 'Quartier avec une forte population juive', '56 KM', '8965', 'Français'),
(5, 3, 'Haute-ville', 'Quartier touristique', '236 KM', '11 906', 'Arabe'),
(6, 3, 'Base-Ville', 'Quartier résidentiel peux favoriser', '125 KM', '563', 'Français');

-- --------------------------------------------------------

--
-- Structure de la table 'ville'
--
-- Création: Jeu 10 Avril 2014 à 01:13
-- Dernière modification: Jeu 10 Avril 2014 à 01:19
--

CREATE TABLE IF NOT EXISTS 'ville' (
  'id' int(5) NOT NULL AUTO_INCREMENT COMMENT 'UID de la ville',
  'name' varchar(30) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Nom de la ville',
  PRIMARY KEY ('id'),
  UNIQUE KEY 'name' ('name')
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='Ville' AUTO_INCREMENT=5 ;

--
-- Contenu de la table 'ville'
--

INSERT INTO 'ville' ('id', 'name') VALUES
(1, 'Laval'),
(2, 'Montréal'),
(3, 'Québec');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

0
turkish15 Messages postés 13 Date d'inscription mardi 8 avril 2014 Statut Membre Dernière intervention 28 mai 2014
10 avril 2014 à 14:43
je l'ai fait, mais j'ai que la liste déroulante qui me dit choisir ville, et quand je clique dessus y a rien, les enregistrements n'ont pas étés récupérés :S
0
nicelife90 Messages postés 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 151
10 avril 2014 à 15:27
Tu doit ajuster les information de connections

0
turkish15 Messages postés 13 Date d'inscription mardi 8 avril 2014 Statut Membre Dernière intervention 28 mai 2014
10 avril 2014 à 16:29
Salut nicelife90, merci pour ta réponse rapide, j'ai déjà ajusté les informations de connections aux miens, le user et le mot de passe ça n'a rien changer :S
Y'aurai-t-il pas un moyen d'ajuster la section d'affichage de l'agence sélectionnée de ton code au mieu, j'aurais un truc du genre :


<?php
if (isset($_SESSION['gpex']) && isset($_SESSION['agency'])){

$agency_info = $mysqli->query("SELECT * FROM 'agences' WHERE 'id'='".$_SESSION['agency']."'")->fetch_assoc();

?>
<hr/>
<table width="500" border="1" summary="Ceci représente l'information sur l'agence sélectionnée.">
<caption>
Description de l'agence sélectionnée
</caption>
<tr>
<th width="276" scope="row">Code de l'agence :</th>
<td width="214"><?php echo $agency_info['code']; ?></td>
</tr>
<tr>
<th scope="row">Nom de l'agence :</th>
<td><?php echo $agency_info['nom']; ?></td>
</tr>
<tr>
<th scope="row">Adresse :</th>
<td><?php echo $agency_info['adresse']; ?></td>
</tr>
<tr>
<th scope="row">E_mail :</th>
<td><?php echo $agency_info['email']; ?></td>
</tr>
<tr>
<th scope="row">Numero de téléphone :</th>
<td><?php echo $agency_info['num']; ?></td>
</tr>
<tr>
<th scope="row">Fax. :</th>
<td><?php echo $agency_info['fax']; ?></td>
</tr>
</table>

<?php }?>



0

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

Posez votre question
nicelife90 Messages postés 615 Date d'inscription vendredi 24 septembre 2010 Statut Membre Dernière intervention 10 avril 2018 151
10 avril 2014 à 18:31
Oui il est possible d'ajuster sans problème mais le code que tu donnais ne fonctionnais pas.

De plus tu utilise une syntaxe procédural pour ton développement et tes connexion à mysql ce qui est fortement non recommander pour les nouveaux développement.

Tu devrais utiliser un syntaxe orienté objet avec mysqli ou PDO.

https://www.php.net/manual/fr/mysqli.construct.php

si tu veux envoi moi par message privé un dump de ta base de donné et le fichier que tu veux corriger je te le renvois corriger.
0