trie et liste déroulante

hervé
Invité n'ayant pas de compte PHPfrance

05 août 2005, 11:00

boujour, je débute en php et ça fait plusieurs jours que je galére, quelque'un peut t il m'aider à resoudre mon problème:
mon but est de trier une base de donnée en passant par plusieur page pour sélectionner les critère de trie.
Pour cela j'essaye de mettre les variables dans une session.
mon problème principal le trie successif, ensuite mettre les variable en session. pour les sessions je comprend pas bien si on peut mettre plusieurs variables provenant de page différentes ?
Je pense aussi qu'il y a d'autres erreur dans le code des pages ?
merci par avance pour votre aide.
TABLE:

#
# Structure de la table `marque_tbl`
#

CREATE TABLE `marque_tbl` (
  `id_marque` int(11) NOT NULL auto_increment,
  `marque` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id_marque`),
  UNIQUE KEY `marque` (`marque`)
) TYPE=MyISAM AUTO_INCREMENT=6 ;

#
# Contenu de la table `marque_tbl`
#

INSERT INTO `marque_tbl` VALUES (1, 'marque 1');
INSERT INTO `marque_tbl` VALUES (2, 'marque 2');
INSERT INTO `marque_tbl` VALUES (4, 'marque 3');

#
# Structure de la table `model_tbl`
#

CREATE TABLE `model_tbl` (
  `id_model` int(11) NOT NULL auto_increment,
  `marque` varchar(50) NOT NULL default '0',
  `model` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id_model`),
  UNIQUE KEY `id_model` (`id_model`),
  UNIQUE KEY `model` (`model`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;

#
# Contenu de la table `model_tbl`
#

INSERT INTO `model_tbl` VALUES (4, 'marque 1', 'RR');
INSERT INTO `model_tbl` VALUES (2, 'marque 2', 'RR 1');
INSERT INTO `model_tbl` VALUES (3, 'marque 2', 'TR 2');





#
# Structure de la table `annee_tbl`
#

CREATE TABLE `annee_tbl` (
  `marque` varchar(50) NOT NULL default '0',
  `id_annee` int(4) NOT NULL default '0',
  `model` varchar(50) NOT NULL default '0',
  `annee` varchar(50) NOT NULL default '',
  UNIQUE KEY `id_annee` (`id_annee`),
  UNIQUE KEY `annee` (`annee`)
) TYPE=MyISAM;

#
# Contenu de la table `annee_tbl`
#

INSERT INTO `annee_tbl` VALUES ('marque 1', 0, 'RR', '2005');

_______________________________________________________

FICHIER MARQUE:

<?php require_once('Connections/pyb.php'); ?>
<?php
mysql_select_db($database_pyb, $pyb);
$query_liste_marque = "SELECT * FROM marque_tbl";
$liste_marque = mysql_query($query_liste_marque, $pyb) or die(mysql_error());
$row_liste_marque = mysql_fetch_assoc($liste_marque);
$totalRows_liste_marque = mysql_num_rows($liste_marque);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>

<body>
<h3>Moto</h3> 
<form name="marque" id="marque" method="post" action="model.php">
<select name="marque">
<?php
$result = mysql_query("SELECT id_marque, marque FROM marque_tbl");
while (list($id_marque,$marque )= mysql_fetch_row ($result))
 {
 echo ("<OPTION NAME=marque VALUE=$marque >$marque ");
  }
  ?>
</select>
<input type="submit" name="Submit" value="Envoyer" /> 
</form>
 </body>
</html>


______________________________________________________


FICHIER MODEL:

<?PHP session_start(); ?>
<?php require_once('Connections/pyb.php'); ?>
<?php
$marque = $_POST['marque'];
$_SESSION['marque'] = $marque ;
?>
<?php
mysql_select_db($database_pyb, $pyb);
$query_liste_model = "SELECT * FROM model_tbl WHERE '$marque'=marque";
$liste_model = mysql_query($query_liste_model, $pyb) or die(mysql_error());
$row_liste_model = mysql_fetch_assoc($liste_model);
$totalRows_liste_model = mysql_num_rows($liste_model);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Sélection Model</title>
</head>

<body>
<h3>Marque</h3> 
<?php
print ("$marque");
?>
<h3>Model</h3> 
<form name="model" id="model" method="post" action="annee.php">
<select name="model">
<?php
$result = mysql_query("SELECT id_model, model FROM model_tbl");
while (list($id_model,$model )= mysql_fetch_row ($result))
 {
 echo ("<OPTION NAME=model VALUE=$model >$model ");
  }
  ?>
</select>
<input type="submit" name="Submit" value="Envoyer" /> 
</form>
</body>
</html>

____________________________________________________________________

FICHIER ANNEE:

<?PHP session_start(); ?>
<?php require_once('Connections/pyb.php'); ?>
<?php
mysql_select_db($database_pyb, $pyb);
$query_liste_annee = "SELECT * FROM annee_tbl WHERE '$model'";
$liste_annee = mysql_query($query_liste_annee, $pyb) or die(mysql_error());
$row_liste_annee = mysql_fetch_assoc($liste_annee);
$totalRows_liste_annee = mysql_num_rows($liste_annee);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>sélection Année</title>
</head>

<body>
<?php
$model = $_POST['model'];
$_SESSION['model'] = $model ;
?>
<?php
print ("$marque"); 
print ("$model");
?>

<h3>Année</h3> 
<form name="annee" id="annee" method="post" action="resultat.php">
<select name="annee">
<?php
$result = mysql_query("SELECT id_annee, marque FROM annee_tbl");
while (list($id_annee,$annee )= mysql_fetch_row ($result))
 {
 echo ("<OPTION NAME=annee VALUE=$annee >$annee ");
  }
  ?>
</select>
<input type="submit" name="Submit" value="Envoyer" /> 
</form>
</body>
</html>
:shock:

Mammouth du PHP | 19672 Messages

05 août 2005, 11:16

Ton fichier MARQUE devrait commencer lui aussi par session_start(). en ne le mettant pas, tu perds ta session au passage par cette page.

Essaye déjà de corriger ça et reviens en précisant ce qui ne fonctionne pas en pointant au besoin l'endroit du code qui te semble suspect.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

hervé
Invité n'ayant pas de compte PHPfrance

05 août 2005, 11:23

voila, j'ai modifié la page marque, et l'erreur quant je vais à la page model:

"Champ 'marque 1' inconnu dans where clause"

Sur la page model je veut retenir de la table model que les enregistrements correspondant à la marque sélectionner.
merci pour ton aide.[/b]

Mammouth du PHP | 19672 Messages

05 août 2005, 11:26

Tu as inversé les arguments dans ta clause WHERE :
$query_liste_model = "SELECT * FROM model_tbl WHERE marque = '". $marque ."'"; 
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

hervé
Invité n'ayant pas de compte PHPfrance

05 août 2005, 11:30

ok, ça va mieux mais rien n'est trier, il me met toute la table model !

hervé
Invité n'ayant pas de compte PHPfrance

05 août 2005, 11:59

pourtant dans ma table model aprés trie seule 2 éléments devrait appraitre.
:cry:

Mammouth du PHP | 19672 Messages

05 août 2005, 12:42

Si tu exécutes ta requête directement, obtiens-tu le résultat souhaité ? Sinon, c'est au niveau de tes clauses de tri qu'il manque quelque chose.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 14 Messages

05 août 2005, 17:47

pour simplifier ma requete et faire un test j'ai mis:
$query_liste_model = "SELECT * FROM model_tbl WHERE  marque LIKE 'marque 1'";
ça me donne le meme résultat, pourtant cette meme requete marche quant je la teste dans phpmyadmin.
le probleme vient il me semble dedu where qui n'est pas effectué. pourquoi ?
grande question. :?

Eléphanteau du PHP | 14 Messages

05 août 2005, 17:56

j'ai trouvé mon erreur, en déut de la page model il y avait une partie de code en trop, il y avait deux requete sur la page. :oops:

Mammouth du PHP | 19672 Messages

05 août 2005, 18:02

Alors [Résolu] :?:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

hevé
Invité n'ayant pas de compte PHPfrance

05 août 2005, 19:38

presque, mainteant j'ai un soucis avec mes variable de sessions, j'ai 3 pages
et sur ces 3 pages je renseigne " variable de session, mes recheches me conduise vers la construction d'un tableau, suis je sur la bonne voix ?
<?PHP session_start();
$_SESSION['selection'] = array();
$_SESSION['selection']['marque'] = array();
$_SESSION['selection']['model'] = array();
$_SESSION['selection']['annee'] = array();
?>
et dans mes page par ex:
<?php
$model = $_POST['model'];
$select['model'] = '$model';
array_push($_SESSION['selection']['model'],$select['model']); 
?>
:( , je suis là dessus depuis ce matin et je fatigue !!!