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 :

Tri tableau avec requête Where


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Par défaut Tri tableau avec requête Where
    Bonjour,
    Ma demande est un peu spécial.
    J'aimerais savoir si il est possible de lier une requete where sur un lien de facon a éviter de faire un tri complexe sur mon tableau.

    Je voudrais si c est possible effectuer des lien de ce style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href='home_inf.php?idp=5=NewColab WHERE (Section='Accueil') DESC' class='lien'>Accueil</a>
    Evidement celui ci ne fonctionne pas mais c est pour donner une idée de ce que je voudrais faire.

    Ca me parait pas logique de faire ce genre de truc mais bon je pose quand meme la question

    Merci d avance

  2. #2
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    je ne comprend pas bien ce que tu veux... Est-ce que tu peux donner des exemples de ce qui te pose problème et que tu veux simplifier en évitant "un tri complexe sur mon tableau" ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Par défaut
    Alors en fait, j ai une vingtaine de champ ou j aimerais effectuer un tri.
    Ex pour un champ: dans Fonction, j ai comme donnée informaticien, mécanicien, secretaire. Et j aimerais pouvoir afficher que les mécanitien ou que les informaticien etc...


    Ou alors est ce possible qu avec un champ recherche, je tape informaticien et j ai que les informaticien qui s affiche ou je tape 50% et j ai que ceux qui bosse a 50% qui s affiche par exemple

  4. #4
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Tu veux donc faire un tri multi critères et multichamps ??

    Pour cela, il faut que tu récupère la chaine a rechercher depuis un formulaire. Ensuite tu construit ta requete (sur ta base de données SQL) avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECt * FROM 'ta_table' WHERE tuple1 LIKE 'ta_Chaine' OR tuple LIKE 'ta_Chaine' etc... pour autant de champ que tu veux filtrer

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Par défaut
    Qu entends tu par formulaire?
    En gros je recupere mes données
    Déslolé je suis pas le pro du PHP je suis demerde mais là je peine.

  6. #6
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Citation Envoyé par sfc2000 Voir le message
    Qu entends tu par formulaire?
    En gros je recupere mes données
    Déslolé je suis pas le pro du PHP je suis demerde mais là je peine.
    Bonjour,

    dans ce cas, je te conseille la lecture des tutoriels présents sur ce site :
    - débutant web
    - php 5
    - formulaires

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Par défaut
    merci pour les liens.
    Mais j'ai déjà passé par là je maitrise les forms seulement je voyais pas trop ce qu il voulait dire.

    Là je cherche juste un moyen de faire des tris sans devoir faire 40 page avec la requete WHERE.

    Et comme j ai rien trouver qui correspond ou qui peux m aider, ben je me permets de vous solliciter.

  8. #8
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    tes tris / filtres sont prédéfinis ou c'est à l'utilisateur de décider sur quel champ il filtre, avec quelle valeur, et comment il trie...

    Si c'est la seconde solution, il faut que tu passes par un formulaire (balise form). Si c'est prédéfini, tu peux passer une variable avec le type de filtre et le type de tri à appliquer, puis dans ton code analyser ces variables (par exemple avec un switch) pour construire ta requête.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Par défaut
    C est la 2ème solution, je me suis lancer et j'ai ca :

    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
     
     
    <link href="includes/info.css" rel="stylesheet" type="text/css">
    <?php
     
    require("includes/Connexion.php");
    $Champ = "Section";
    $Valeur = "Accueil";
    $table="NewColab";
    $str_NewColab = "SELECT * FROM NewColab WHERE ($Champ='$Valeur') ORDER BY Nom ASC";
     
    echo "<br><b>Collaborateurs  avec PC attribu&eacute;</b><br><br><table width='100%' heigth='100%' border='0' cellspacing='0' cellpadding='0'>";
     
     
    $result_NewColab =mysql_query ($str_NewColab);
    while ($NewColab =mysql_fetch_object($result_NewColab))
    {
     
     
    echo "<tr><td class='texte'><a href='home_inf.php?idp=23&ida=$NewColab->id' class='lien'><b>$NewColab->Nom</b>  $NewColab->Prenom</a></td></tr>";
     
    }
    echo "</table>";
     
    ?>
    Maintenant il me faut le formulaire pour que l utilisateur puisse changer le $Champ et $Valeur

    Je vais meme essayer de pousser la chose en mettant un menu déroulant contenant déjà les champs ($Champ)

    Ca va etre chaud mais qui ne tente rien a rien

    Si vous avez un conseil je suis preneur

    Est ce que je suis juste?

  10. #10
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Si tu connais les formulaires, alors tu as tous dit, il ne te reste plus qu'a mettre en application

  11. #11
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    C'est un bon début...

    Mes conseils :
    - ne fais pas de "select *", mais précise les champ que tu veux récupérer
    - pour récupérer les champs de la table NewColab (si tu veux tous les proposer aux utilisateurs), tu peux exécuter la requête "SHOW COLUMNS FROM NewColab"
    - si tu veux aller plus loin, tu peux aussi dans ton formulaire ajouter un champ 'opérateur' dans lequel l'utilisateur peut sélectionner autre chose que "=" (">", "<", "like", ...)
    - quand tu récupéreras les données du formulaire, penses à les vérifier

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Par défaut
    On va voir on sont mes limite avec les form mais ca devrais jouer.

    Je mets pas encore résolu, je mettrais mon script si il marche ca peut ptre donneer des idée a d autre.

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Par défaut
    Ben j aurais pas été bien loin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    $Champs = "$Champ";
    $Valeurs = "$Valeur";
    $str_NewColab = "SELECT * FROM NewColab, Rech WHERE ($Champs='$Valeurs') ORDER BY Nom ASC";
    Mon form fonctionne mais mon where ne prend pas en compte $Champs et $Valeurs

    Je dois mal recuperer les valeurs

    Je vois que tout les tutos et bouquins n on pas suffi lol

  14. #14
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Tu peux nous montrer le code de ton formulaire ?

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Par défaut
    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
    38
    39
     
     
    	echo "<table width='100%' border='0' cellspacing='0' cellpadding='0'>";
    	echo "<form name='insert' method='post' action='essai.php'>";
     
    	if ($pbSubmit == 'Modifier'){
    		$requete = "SELECT * FROM Rech WHERE id='$id'";
      		$result = mysql_query ($requete) or ezine_mysql_die();
      		$liste =mysql_fetch_object($result);
      		mysql_free_result($result);
    	}
    	elseif ($pbSubmit == 'Mettre à jour'){
    $requete = "UPDATE Rech SET Valeur = '$Valeur' WHERE id = '$_POST[idMAJ]'";
    		$result = mysql_query ($requete) or ezine_mysql_die();
    }
     
    	echo "<tr><td width='180' align='right' height='60'></td><td width='60'>&nbsp;</td><td width='600' class='style'><b></b></td></tr>";
    	echo "<tr><td height='20'></td><td></td><td></td></tr>";
    	echo "<tr><td height='20' class='style' align='right'><b></b></td><td></td><td>";
    	echo "<select name='id'>";
     
    	$requete = "SELECT * FROM Rech ORDER BY Champ ASC LIMIT 0,10000";
      	$result = mysql_query ($requete) or ezine_mysql_die();
      	while ($listeTitres = mysql_fetch_object($result)) {
    		echo "<option value='$listeTitres->id'>$listeTitres->Champ</option>";
    	}
    	echo "</select>";
    	echo "</td></tr>";
    	echo "<tr><td height='20'></td><td></td><td></td></tr>";
    	echo "<tr><td height='20'></td><td></td><td><input type='submit' name='pbSubmit' value='Modifier'><input type='submit' name='pbSubmit' value='Supprimer'></td></tr>";
    	echo "<tr><td height='20'></td><td></td><td></td></tr>";
    	echo "<tr><td height='20' class='texte' align='left'></td><td></td><td><textarea name='Valeur' cols='35' rows='1'>$liste->Valeur</textarea></td></tr>";
    	echo "<tr><td height='20'></td><td></td><td></td></tr>";
        echo "<tr><td>";
    	echo "<input type='hidden' name='idMAJ' value='$liste->id'>";
        echo "<input type='submit' name='pbSubmit' value='Mettre à jour'>";
    	echo "</td></tr>";
    	echo "<tr><td height='20'></td><td></td><td></td></tr>";
    	echo "</form></table>";
    Ca me rentre bien les données dans la base mais c est apres que ca foire

  16. #16
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Je ne vois pas vraiment le rapport entre le code que tu nous montres et un formulaire permettant de filtrer les données d'une table...

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Par défaut
    L idée était que l utilisateur rentre 2 champs qui vont agrémenter le WHERE pour filtrer

  18. #18
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Moi ce que j'ai vu c'est un formulaire de modification ou suppression, mais pas de recherche

    Mais bon, il est vrai que je n'ai pas regardé tout le code en détail, c'est un peu dense

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Par défaut
    Je vais mettre ca un peu de côté pour l instant car d'autre tâches presse

    Merci pour votre aide

Discussions similaires

  1. Tableau avec requêtes sql
    Par Kazumi dans le forum Langage
    Réponses: 7
    Dernier message: 07/06/2013, 15h20
  2. Tri tableau avec threads
    Par Rostov dans le forum C
    Réponses: 2
    Dernier message: 15/12/2009, 00h05
  3. [Tableaux] tri tableau avec fonction
    Par ascito dans le forum Langage
    Réponses: 7
    Dernier message: 10/09/2008, 14h21
  4. [Tableaux] Tri tableau avec underscore et chiffres
    Par __fabrice dans le forum Langage
    Réponses: 4
    Dernier message: 18/10/2006, 17h05
  5. [Tableaux] tri tableau avec date
    Par omelhor dans le forum Langage
    Réponses: 12
    Dernier message: 17/10/2006, 20h24

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