Envoyer des donnees par la method get avec la balise get

ENSELME -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, j'ai pu afficher les donnees de ma base de donnees par select,mon probleme j'aimerai recuperer le code par la methode GET
voici mon code
1)code pour envoyer les donnees par methode get

<select name="" style="height:30px;">
<option></option>
<?php
 session_start();
include"../connexion/connexion.php";
$link = mysql_connect($local,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
$select = 'SELECT  `vehicule`.`code_veh`,`vehicule`.`im_veh` FROM `attribuer`,`mission`,`vehicule` WHERE `mission`.`cod_mis`="'.$GET['cod_mis'].'" AND `attribuer`.`cod_mis`=`mission`.`cod_mis` AND `vehicule`.`code_veh`=`attribuer`.`code_veh`';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
if($total) { 
    while($row = mysql_fetch_array($result)) {
       
 
    echo '<option value="?cod_mis='.$row[0].'">'.$row[1].'</option>';  
    }
}
mysql_free_result($result);

?>
</select>

2)recuperation de mon code

<select name="mission" style="height:30px;">
<option></option>
<?php
 session_start();
include"../connexion/connexion.php";
ini_set('display_errors','off');
$link = mysql_connect($local,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
$select = 'SELECT  `vehicule`.`code_veh`,`vehicule`.`im_veh` FROM `attribuer`,`mission`,`vehicule` WHERE `mission`.`cod_mis`="'.$GET['cod_mis'].'" AND `attribuer`.`cod_mis`=`mission`.`cod_mis` AND `vehicule`.`code_veh`=`attribuer`.`code_veh`';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
if($total) { 
    while($row = mysql_fetch_array($result)) {
       
 
    echo '<option value="'.$row[0].'">'.$row[1].'</option>';  
    }
}
mysql_free_result($result);

?>
</select>


mais la recuperation ne s'effectue pas correctement

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

  1. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
     
    Ce n'est pas
    $GET['cod_mis']
    mais
    $_GET['cod_mis']

    Petit rappel, l'extension mysql est obsolète
    0
    1. ENSELME
       
      je viens de faire $_GET['cod_mis'] mais ca ne marche tjrs pas
      0
    2. NHenry Messages postés 15235 Date d'inscription   Statut Modérateur Dernière intervention   387
       
      As-tu affiché et vérifié la requête utilisée (celle calculée par PHP) ?
      As-tu une description plus précise ?

      As-tu lu le rappel concernant MySql dans mon message ?
      0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Par contreBonjour,

    Voici le code remis en forme et "corrigé"
    <?php
    //-------------------------------------------------------------------------------//
    // Code à mettre tout en haut de ta page !
    //-------------------------------------------------------------------------------//
    
    //Démarrage Session
    session_start();
    
    //Infos de connexion à la BDD
    require_once "../connexion/connexion.php";
    
    //ini_set('display_errors','off'); // Le temps des tests... il faut AFFICHER les erreurs 
    error_reporting(E_ALL);
    
    $link = mysql_connect($local,$user,$pass) or die ('Erreur : '.mysql_error() );
    mysql_select_db($db) or die ('Erreur :'.mysql_error());
    //-------------------------------------------------------------------------------//
    
    // Récupération "propre" des variables
    $cod_mis = !empty($_GET['cod_mis']) ? $_GET['cod_mis'] : NULL;
    
    //Le temps des tests :
    if(!$cod_mis){
       print_r($_GET);
    }
    
    ?>
    
    <select name="mission" style="height:30px;">
    <option></option>
    <?php
    if($cod_mis){
     $sql = "SELECT  V.code_veh
                    ,V.im_veh 
                 FROM attribuer A
                      ,mission M
                      ,vehicule V 
                 WHERE M.cod_mis='".$cod_mis."' 
                 AND A.cod_mis=M.cod_mis 
                 AND V.code_veh=A.code_veh";
     $result = mysql_query($sql,$link) or die ('Erreur : '.mysql_error() . "<br> Requete : ".$sql );
     $total = mysql_num_rows($result);
    
     if($total) { 
       while($row = mysql_fetch_array($result)) {
         echo '<option value="'.$row[0].'">'.$row[1].'</option>';  
       }
     }
     mysql_free_result($result);
    }
    ?>
    </select>
    


    Comme tu peux le voir j'y ai ajouté :
    - La récupération "propre" des variables
    - la mise en forme de la requête avec des retours à la ligne histoire de la rendre plus lisible et l'utilisation d'Alias pour la rendre plus "légère"
    - Un test pour voir si ta variable était bien reçue dans ta page....

    Par contre.. comme te l'a indiqué NHenry ... tu utilises l'ancienne extensions de mysql.
    Je t'invite fortement à lire ceci :
    https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

    .

    Et enfin... je ne comprends pas bien ton premier message ...
    Tu dis.. en 1 ... montrer le code qui est sencé envoyer les données ??? Oo
    Je ne vois pas, dans ce code.. de formulaire utilisant la méthode post ... ou un javascript qui pourrait éventuellement le faire.....
    Donc peux tu nous montrer le code qui te sert à ENVOYER ta variable GET à ton "second code" (celui que je viens de te corriger) ?

    0