Faire une 2e requête sql en fonction de la 1ere

cs_kevin54000 Messages postés 34 Date d'inscription lundi 2 juin 2008 Statut Membre Dernière intervention 25 juin 2008 - 24 juin 2008 à 14:12
Farfadh Messages postés 68 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 7 juillet 2008 - 3 juil. 2008 à 20:33

10 réponses

cs_kevin54000 Messages postés 34 Date d'inscription lundi 2 juin 2008 Statut Membre Dernière intervention 25 juin 2008
24 juin 2008 à 14:13
Bonjour à tous.

J'explique mon problème.

Je fais une liste déroulante qui cherche tous les dépanneurs dans ma BDD :

$requete = mssql_query("SELECT DISTINCT depanneur FROM [GTACD].[dbo].[DEP_APPMISSION8] ");
while ($donnees = mssql_fetch_array($requete))
{
echo "<option>".$donnees["depanneur"]."</option>";
}
echo "type="submit"id="boutonindex"value="Valider">" ;
echo "</select>";
echo "</form>";

Ensuite je voudrais qu'en fonction du dépanneur choisi, il m'affiche ses missions sur la même page.

Ma 2e requête est déja faite mais je ne sais pas comment récupérer le
dépanneur choisi dans la liste pour m'en servir dans ma 2e requête !
Ma 2e requête se résume a ceci :

$requete=mssql_query("SELECT immatriculation, marque, type, couleur, nom_proprietaire, motif_appel, lieu_depot_prevu, prestation, reparation_effectuee, date_mission FROM [GTACD].[dbo].[DEP_APPMISSION8]");

Comment fait-on ça ?
Merci
0
cs_kevin54000 Messages postés 34 Date d'inscription lundi 2 juin 2008 Statut Membre Dernière intervention 25 juin 2008
24 juin 2008 à 14:28
Warning: mssql_query() [[function.mssql-query function.mssql-query]]: message: Nom de colonne
non valide : 'YANN'. (severity 16) in C:\Inetpub\wwwroot\depanneur.php on
line 32

Warning: mssql_query() [[function.mssql-query function.mssql-query]]: General SQL Server error:
Check messages from the SQL Server. (severity 5) in
C:\Inetpub\wwwroot\depanneur.php on line 32

Warning:
mssql_query() [[function.mssql-query function.mssql-query]]: Query
failed in C:\Inetpub\wwwroot\depanneur.php on line

Voici mon code :

<html>
<title>Depanneur</title>
<head>
<link rel="stylesheet" media="screen" type="text/css" title="Essai" href="style.css" />
</head>

[deconnexion.php D&eacute;connexion]

Détails des missions de

<form action="" method="post"><select name="recherche" id="recherche">
<?php
include "connexion.php" ;
mssql_connect("192.168.1.7", "sa", "gsx-999") or die (mssqsl_error());

$requete = mssql_query("SELECT DISTINCT depanneur FROM [GTACD].[dbo].[DEP_APPMISSION8] ");   
while ($donnees = mssql_fetch_array($requete))
{
    echo "<option value=".$donnees['depanneur']." >".$donnees['depanneur']."</option>";
}
echo "" ;
echo "</select>";
echo "</form>";
$requete2 mssql_query("SELECT immatriculation, marque, type, couleur, nom_proprietaire, motif_appel, lieu_depot_prevu, prestation, reparation_effectuee, date_mission FROM [GTACD].[dbo].[DEP_APPMISSION8] WHERE depanneur ".$_POST['recherche']. "");

?>

</html>
0
cs_kevin54000 Messages postés 34 Date d'inscription lundi 2 juin 2008 Statut Membre Dernière intervention 25 juin 2008
25 juin 2008 à 09:02
Personne pour m'aider :-( ?
0
Vonscott Messages postés 61 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 19 septembre 2011
25 juin 2008 à 10:46
Salut,

En fait, si tu veux afficher dans la meme page, tu as deux solutions :
 - Soit tu la recharge
 - Soit tu passe par AJAX

<select name="recherche" id="recherche">
<?php
include "connexion.php" ;
mssql_connect("192.168.1.7", "sa", "gsx-999") or die (mssqsl_error());
if(isset($_POST['recherche']))
 {
  echo '<option value="'.$_POST['recherche']'" selected="selected" >'.$_POST['recherche'].'</option>';
 }
$requete = mssql_query("SELECT DISTINCT depanneur FROM [GTACD].[dbo].[DEP_APPMISSION8]");   
while ($donnees = mssql_fetch_array($requete))
{
    echo '<option value="'.$donnees['depanneur'].'" >'.$donnees['depanneur'].'</option>';
}
echo '' ;
echo '</select>';
echo '</form>';
if(isset($_POST['recherche']))
 {
  $requete2 = mssql_query("SELECT immatriculation, marque, type, couleur, nom_proprietaire, motif_appel, lieu_depot_prevu,
  prestation, reparation_effectuee, date_mission FROM [GTACD].[dbo].[DEP_APPMISSION8] WHERE depanneur = '".htmlentities($_POST['recherche'])."'");
 /*
 //Traitement du resultat
*/
}

?>
0

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

Posez votre question
cs_kevin54000 Messages postés 34 Date d'inscription lundi 2 juin 2008 Statut Membre Dernière intervention 25 juin 2008
25 juin 2008 à 10:58
Merci de ta réponse mais j'ai l'erreur :
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in C:\Inetpub\wwwroot\depanneur.php on line 21

La ligne 21 correpond a :
echo '<option value="'.$donnees['depanneur'].'" >'.$donnees['depanneur'].'</option>';
0
cs_kevin54000 Messages postés 34 Date d'inscription lundi 2 juin 2008 Statut Membre Dernière intervention 25 juin 2008
25 juin 2008 à 11:00
Hum nan pardon, la ligne 21 correspond a :
echo '<option value="'.$_POST['recherche']'" selected="selected" >'.$_POST['recherche'].'</option>';

PS: il n'existe pas une fonction pour éditer ses post xD ?
0
Vonscott Messages postés 61 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 19 septembre 2011
26 juin 2008 à 12:55
Salut,


Désolé, il manque un point

echo '<option value="'.$_POST['recherche'].'" selected="selected" >'.$_POST['recherche'].'</option>';


 
0
Farfadh Messages postés 68 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 7 juillet 2008 4
2 juil. 2008 à 10:40
Si dans la dexuième requête tu sélectionnes presque tous les champs, fais plutôt un SELECT * ...
0
Vonscott Messages postés 61 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 19 septembre 2011
2 juil. 2008 à 17:25
Non, non et non,

on ne fait jamais de SELECT *
 
0
Farfadh Messages postés 68 Date d'inscription dimanche 1 avril 2007 Statut Membre Dernière intervention 7 juillet 2008 4
3 juil. 2008 à 20:33
Après quelques tests de performances, on fait des SELECT * sur les tables de plus d'une vingtaine de champs environ si on veut optimiser le temps d'exécution.

Ce n'est pas le cas ici donc j'ai été de mauvais conseil.
0
Rejoignez-nous