IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Comment faire un tableau triable par un utilisateur ?


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Par défaut Comment faire un tableau triable par un utilisateur ?
    Hi all !

    Je voudrais savoir quels étaient les moyens pour qu'un utilisateur puisse trié un tableau à son souhait ?

    J'ai pensé à la solution où je crée une requête MySQL avec un Order By, mais je dispose de 9 colonne soit 18 requêtes et 18 réaffichage du tableau en hml, ça fait un peu lourd sachant que g 2 tableau du mm nombre de colonne .

    Où est ce faisable de créer que les 9 requête et d'afficher le tableau selon le résultat de la requête mais sans avoir à faire 18 condition et affichage de tableau ?

    Merci pour vos réponses

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    124
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2006
    Messages : 124
    Par défaut
    si j'ai bien compris ton pb, ça doit être faisable avec une requête dynamique

    tu construit donc 1 requête en fonction des critères choisis par l'utilisateur

  3. #3
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    Salut,

    Une solution comme une autre.

    Tu passes en parametre le nom du champs au niveau du formulaire. Lorsque tu executes ta requete il sera primordial de vérifier que ce champs existe bien.
    Pour faire cela tu peux utiliser la requetes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW COLUMNS FROM table LIKE 'unchamps'
    Si tu le trouves, tu peux le mettre dans le order by, autrement tu n'aura qu'à mettre un champs par défaut.

    bbye

  4. #4
    Membre expérimenté Avatar de frol
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 288
    Par défaut
    moi j'ai fais plus simple enfin peu long a la création mais ça va

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    $limite = $_GET['limite']; 
        if (!isset($limite)) $limite = 0;
        if (isset($_GET['titre'])) $_POST['titre']=$_GET['titre'];
        if (isset($_GET['type'])) $_POST['type']=$_GET['type'];
        if (isset($_GET['value'])) $_POST['value']=$_GET['value'];
        if (isset($_GET['order'])) $_POST['order']=$_GET['order'];    
        if (!$_POST['order']) $_POST['order']=$_POST['type'];        
        if (isset($_GET['desc'])) $_POST['desc']=$_GET['desc'];     
        if ($_GET['fl']) $var_sql = $_POST['type']." like '".$_GET['fl']."%' and ";
     
     
        function desc($POSTtype,$POSTdesc,$type){
            if($POSTtype == $type) {
                if($POSTdesc == 'desc') return '';
                elseif($POSTdesc != 'desc') return 'desc';
            }
        }
    //    on fait les liens
        $lien_titre = "index.php?action=104&fl=".$_GET['fl']."&type=".$_POST[type]."&value=".$_POST[value]."&order=titre&desc=".desc($_POST[order],$_POST[desc],'titre');
        $lien_artiste = "index.php?action=104&fl=".$_GET['fl']."&type=".$_POST[type]."&value=".$_POST[value]."&order=artiste&desc=".desc($_POST[order],$_POST[desc],'artiste');        
        $lien_style = "index.php?action=104&fl=".$_GET['fl']."&type=".$_POST[type]."&value=".$_POST[value]."&order=style&desc=".desc($_POST[order],$_POST[desc],'style');        
        $lien_type = "index.php?action=104&fl=".$_GET['fl']."&type=".$_POST[type]."&value=".$_POST[value]."&order=type&desc=".desc($_POST[order],$_POST[desc],'type');
        $arrow[$_POST['order']] ="<img src=\"images/ordre".$_POST['desc'].".png\" />";
     
     
        $mess = new req();
        $mess->connect($host_bdd,$login_bdd,$mdp_bdd,$database_bdd);
        $mess->query_lim("tablatures WHERE $var_sql ".$_POST['type']." like '%".$_POST['value']."%' order by ".$_POST['order']." ".$_POST['desc'],$limite,20);
        echo "<table width='500px'><tr><td><a href=\"$lien_titre\">".$arrow['titre']."Titre</a></td><td><a href=\"$lien_artiste\">".$arrow['artiste']."Artiste</a></td><td><a href=\"$lien_style\">".$arrow['style']."Style</a></td><td><a href=\"$lien_type\">".$arrow['type']."Type</a></td></tr>";
        while( $result = $mess->fetch_array() ){    
            echo "<tr><td><a href=\"index.php?action=100&id=".$result['id']."\">".$result['titre']."</a></td><td><a href=\"index.php?action=104&type=artiste&value=".$result['artiste']."\">".$result['artiste']."</a></td><td><a href=\"index.php?action=104&type=style&value=".$result['style']."\">".$result['style']."</a></td><td><a href=\"index.php?action=104&type=type&value=".$result['type']."\">".$result['type']."</a></td></tr>";
            $result_min=1;
        }
        echo '</tr></table>';
        if (!$result_min) echo"Pas de r&eacute;sultat";
        echo "<br>";
        $mess->liens("index.php?action=104&&type=$type&&value=$value&&");
    et ça donne ceci

  5. #5
    Membre éclairé Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Par défaut
    ok je testerais, merci

    Je met pas de résolu car je reviendrais surement

  6. #6
    Membre chevronné Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Par défaut
    j'ai qqchose de bcp plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	$q = "SELECT * FROM fourniture ";
    	if (isset($_GET['sort'])){		
    		$q .= " ORDER BY ".$_GET['sort']." ".$_GET['order']."";
    	}
    	if ($_GET['order']== "desc"){
    		$order = "ASC";
    	}else{
    	$order = "desc";
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <a href="stat_produit.php
    ?user=<?php echo $produit;?>&sort=designation&order=<?php echo $order;?>">Designation </a>
    sort=designation (designation est le champs dans la table)


  7. #7
    Membre chevronné Avatar de Joe Le Mort
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 392
    Par défaut
    Citation Envoyé par mLk92
    ok je testerais, merci

    Je met pas de résolu car je reviendrais surement
    évite de prendre l'usine a gaz de frol, que je ne conseille pas, pour des raisons de sécurité

Discussions similaires

  1. Comment faire un tableau tout simple dans un état
    Par robertetgorgette dans le forum Access
    Réponses: 1
    Dernier message: 25/07/2006, 15h20
  2. Comment faire passer un menu par dessus une autre frame
    Par barthelv dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/11/2005, 11h03
  3. VB6: Comment faire un tableau de tableaux ?
    Par AsmCode dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 10/11/2005, 22h57
  4. [CR] comment faire un tableau croisé
    Par yoyothebest dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 29/08/2004, 18h32
  5. Comment faire générer du rtf par mon application?
    Par nickylarson dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/08/2003, 09h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo