Partage
  • Partager sur Facebook
  • Partager sur Twitter

affichage d'une liste à partir d'une autre liste

PHP

Sujet résolu
    9 mars 2007 à 14:40:30

    bonjour à tous,

    je débute en PHP et j'ai un soucis....
    je souhaite afficher une liste (CLASSIFICATION) en fonction du résultat d'une autre liste (GENRE)et ceci à chaque fois que je CLICK dans la liste GENRE.
    Je vous montre le code récupéré et légèrement remanié et si quelques âmes charitables peuvent m'aiguiller vers la bonne voie, cela m'aiderai fortement....
    Par avance merci
    <erreur></erreur>
    • Partager sur Facebook
    • Partager sur Twitter
      9 mars 2007 à 15:02:57

      <?php require_once('Connections/TESTESSAI.php');

      if (!function_exists("GetSQLValueString")) {
      function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
      {
      $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

      $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

      switch ($theType) {
      case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
      case "long":
      case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
      case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
      case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
      case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
      }
      return $theValue;
      }
      }

      mysql_select_db($database_TESTESSAI, $TESTESSAI);
      $query_Recordset1 = "SELECT * FROM doc_genre";
      $Recordset1 = mysql_query($query_Recordset1, $TESTESSAI) or die(mysql_error());
      $row_Recordset1 = mysql_fetch_assoc($Recordset1);
      $totalRows_Recordset1 = mysql_num_rows($Recordset1);

      $query_Recordset2 = "SELECT * FROM doc_classif";
      $Recordset2 = mysql_query($query_Recordset2, $TESTESSAI) or die(mysql_error());
      $row_Recordset2 = mysql_fetch_assoc($Recordset2);
      $totalRows_Recordset2 = mysql_num_rows($Recordset2);

      function listbox ( $name , $array_value = array() , $array_selected , $multiple = 0 , $size = 1 )
      {
      $select = '<select' . ( ( $multiple == 1 ) ? ' multiple name="' . $name . '[]"' : ' name="' . $name . '"' ) .
      ' size="' . $size . '">' . "n" ;

      foreach ( $array_value as $key => $value )
      {
      $select .= '<option value="' . $key . '"' .
      ( ( $multiple == 1 ) ? ( in_array ( $key , $array_selected ) ? ' selected="selected"' : '' ) :
      ( $key == $array_selected ? ' selected="selected"' : '' ) ) .
      '>' . $value . '</option>' . "n" ;
      }

      $select .= '</select>' ;

      return $select ;
      }

      // affichage de la liste des GENRES

      $sql = "SELECT gen_nom FROM doc_genre" ;
      $result = mysql_query ( $sql ) ;
      $region = array() ;
      while ( $row = mysql_fetch_assoc ( $result ) )
      {
      $region[] = $row['gen_nom'] ;
      }

      //Une liste simple avec une valeur pré-sélectionnée et conservation d'une valeur après envoit
      echo listbox ( 'doc_genre' , $region , ( isset ( $_POST['doc_genre'] ) ? $_POST['doc_genre'] : 0 ) , 0 , 3 ) ;




      // affichage de la liste des CLASSIFICATIONS

      switch($valeur)
      {
      case 0 : $sql_cla = "SELECT cla_description FROM doc_classif WHERE cla_genre=0" ;
      break;
      case 1 : $sql_cla = "SELECT cla_description FROM doc_classif WHERE cla_genre=1" ;
      break;
      case 2 : $sql_cla = "SELECT cla_description FROM doc_classif WHERE cla_genre=0 OR cla_genre=1" ;
      };

      $result_class = mysql_query ( $sql_cla ) ;
      $liste_class=array();
      while ( $row = mysql_fetch_assoc ( $result_class ) )
      {
      $liste_class[] = $row['cla_description'] ;
      }

      $cnt=count($liste_class);
      $select=@$_POST['select'];
      $ret='';


      if(isset($_POST['valider'])){
      for($x=0;$x<$cnt;$x++)
      if(isset($select[$x]))
      $ret.=$liste_class[$x].'<br/>';
      }


      $ret.='<br/><form method="post">';
      for($x=0;$x<$cnt;$x++){
      $ret.='<input type="checkbox" name="select['.$x.']"';
      if(isset($select[$x])) $ret.=' checked';
      $ret.='/>'.$liste_class[$x].'<br/>';
      }
      $ret.='<br/>'.
      '<input type="submit" name="valider" value=" ENVOYER "/>'.
      '</form>';
      echo $ret;

      ?>

      un bon conseil, va relire le cours.
      Dans ton code il y a de tout et un grand nombre de chosess qui ne servent à rien.
      Tient un petit exemple de chose incohérente:
      case "long":
      case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;

      donc bonne chance pour éclaircir ton code et le nettoyer. :)
      • Partager sur Facebook
      • Partager sur Twitter
      :)
        9 mars 2007 à 15:13:15

        il est vrai que

        Citation : Pas de titre

        if (!function_exists("GetSQLValueString")) {
        function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
        {
        $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

        $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

        switch ($theType) {
        case "text":
        $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
        break;
        case "long":
        case "int":
        $theValue = ($theValue != "") ? intval($theValue) : "NULL";
        break;
        case "double":
        $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
        break;
        case "date":
        $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
        break;
        case "defined":
        $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
        break;
        }
        return $theValue;
        }
        }


        ne semble pas utile mais il ne gêne pas et surtout ta réponse ne répond pas à ma question
        Le code a certe besoin d'être nettoyé ...
        merci quand même
        • Partager sur Facebook
        • Partager sur Twitter
          9 mars 2007 à 15:41:45

          Je suis sur qu'en le nettoyant tu trouvera ton erreur c'est surtout pour ça que je te l'ai dit.
          Après moi je te donnerais de l'aide que lorsque le code sera plus compréhensible, car je n'aime pas me prendre la tête.
          donc dsl.
          • Partager sur Facebook
          • Partager sur Twitter
          :)
            9 mars 2007 à 21:46:33

            <question></question>bon voila un code allégé...
            je souhaite ouvrir une liste (chargée à partir d'une base de donnée) lorsque je clique sur un élément du menu du présent code. afin d'ourir la nouvelle liste j'ai besoin de récupérer ID_GEN de la base actuelle.
            Je débute et galère, alors si on peut m'aiguiller
            Par avance merci

            <?php require_once('Connections/TESTESSAI.php'); ?>
            <?php
            mysql_select_db($database_TESTESSAI, $TESTESSAI);
            $query_RecordGenr = "SELECT * FROM doc_genre";
            $RecordGenr = mysql_query($query_RecordGenr, $TESTESSAI) or die(mysql_error());
            $row_RecordGenr = mysql_fetch_assoc($RecordGenr);
            $totalRows_RecordGenr = mysql_num_rows($RecordGenr);

                $sql_genre = "SELECT gen_nom FROM doc_genre" ;
                    $result_genre = mysql_query ( $sql_genre ) ;
                    $liste_genre = array() ;
                    $id_genre = array();

                    while ( $row = mysql_fetch_assoc ( $result_genre ) )
                            {
                            $liste_genre[] = $row['gen_nom'] ;
                            $id_genre[] = $row['gen_id'];
                            }
            ?>
            <form method="post" action="test.php">
            <select name="select" size="3" id="select">
            <?php
            for ($i=0;$i<3;$i++)
            {
            ?>
                <option value="<?php echo $id_genre[$i] ?>"><?php echo $liste_genre[$i] ?></option>
            <?php
            }
            ?>
            </select>
            <input type="submit" name="Submit" value="OK">
            </form>


            <?php
            mysql_free_result($RecordGenr);
            ?>


            • Partager sur Facebook
            • Partager sur Twitter

            affichage d'une liste à partir d'une autre liste

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown