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 :

Tirer par ordre alphabet [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    991
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 991
    Par défaut Tirer par ordre alphabet
    Bonjour à tous,

    Je voudrais intégrer la fonction tirer par ordre alphabet dans mon script, j'ai trouvé le bon code qui marche à merveille dans un fichier de test :

    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
    <?php
    	// Connexion à la base de donnée
    	try
    		{
    			$bdd = new PDO('mysql:host=127.0.0.1;dbname=*******', 'root', '*(**********');
    		}
    	catch(Execption $e)
    		{
    			die('Erreur : '.$e->getMessage());
    		}
    	$reponse = $bdd->query('SELECT titre FROM videotheque ORDER BY titre');
     
    	while ($donnees = $reponse->fetch())
    		{
    			echo $donnees['titre'] . '<br />';
    		}
     
    	$reponse->closeCursor();
    ?>
    Cela me liste bien tous les titres par ordre alphabet, pas de problème.

    Maintenant, quand il s'agit de le faire intégrer dans un script déjà codé, là j'ai un souci et je ne sais pas pourquoi cela plante, sûrement parce que je me trompe quelque part mais où ?

    Voici le code du script fonctionnel AVANT l'intégration ORDER BY
    avant HEADER :

    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
    <!-- Connexion à la base de données -->
    <?php include('include/connexion_mysql.php'); ?>
     
    <!-- Récuperer des informations, tous les champs de la table films -->
    <?php
            $recup_infos = $bdd->query('SELECT * FROM videotheque');
    ?>
     
     
     
    <?php
            $nbre_films = $bdd->query('SELECT COUNT(*) AS nb_films FROM videotheque');
            $donnees = $nbre_films->fetch();
     
    if(isset($_GET['id_film']))
            {
                    // Créer variable id_film pour les traiter
                    $id_film = $bdd->prepare("SELECT * FROM videotheque WHERE id=:id");
                    $id_film->execute(array(
                    'id' => $_GET['id_film']
                    ));
            }
     
    else // si n'existe pas
            {
                    $id_film = $bdd->query("SELECT * FROM videotheque");
            }
     
    ?>
    Et partie BODY :

    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
    <div id="liste_reponse">
                        <!-- créer requete boucle pour recuperer tous les titres -->
                                    <?php 
                                            while ($donnees = $recup_infos->fetch())
                                            {
                                    ?>
                    <!-- listing --><!-- + recup id via get id film -->
                    <a href="listing_films.php?id_film=<?php echo $donnees['id']; ?>"><?php echo $donnees['titre']; ?></a><br />
                    <!-- boucle fini, il faut fermer la requete -->
                    <?php 
                                            } 
                                            $recup_infos->closeCursor(); 
                                    ?>
                    </div>
                    </div>
            <div id="col_droite">
                            Titre : <?php echo $donneesfilmactuel['titre']; ?><br />
                    R&eacute;alis&eacute; par : <?php echo $donneesfilmactuel['realisateur']; ?><br />
                Avec : <?php echo $donneesfilmactuel['participant']; ?><br />
                Dur&eacute;e : <?php echo $donneesfilmactuel['duree']; ?><br />
                Ann&eacute;e production : <?php echo $donneesfilmactuel['annee_production']; ?><br />
                Sortie cin&eacute;ma : <?php echo $donneesfilmactuel['sortie_cinema']; ?><br />
                R&eacute;sum&eacute; : <?php echo $donneesfilmactuel['resume_film']; ?><br />
                Couverture : <img src="<?php echo $donneesfilmactuel['couverture']; ?>" width="160" height="213" /><br />
                Format : <?php echo $donneesfilmactuel['format']; ?><br />
                Son : <?php echo $donneesfilmactuel['son']; ?><br />
                Sous-titre : <?php echo $donneesfilmactuel['soustitre']; ?><br />
                Commentaires : <?php echo $donneesfilmactuel['commentaire']; ?><br />
                ID Allociné : <?php echo $donneesfilmactuel['id_allocine']; ?><br />
                LDLL : <a href="<?php echo $donneesfilmactuel['li_int']; ?>">Téléchager<br /></a>
                            <?php
                                    $id_film->closeCursor();
                            ?>
            </div>

    Pour l'intégration ORDER BY j'ai fait cette modification :

    Avant header, j'ai rajouté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $listing_az = $bdd->query('SELECT titre FROM videotheque ORDER BY titre');
    Dans body j'ai remplacé de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="listing_films.php?id_film=<?php echo $donnees['id']; ?>"><?php echo $donnees['titre']; ?></a><br />
    par ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="listing_films.php?id_film=<?php echo $donnees['id']; ?>"><?php echo $listing_az['titre']; ?></a><br />
    Cela me fait planter complètement, je n'ai aucun idée pourquoi et d'où je me suis trompé.

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Salut,

    Pourquoi tu fait une nouvelle requete pour gérer le tri ?
    Ca serait pas plus simple de mettre le ORDER directement ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $recup_infos = $bdd->query('SELECT * FROM videotheque ORDER BY titre');
    En tout cas le problème viens surement du fait que tu ne fait aucun fetch() sur cette nouvelle requête ($listing_az)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    991
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 991
    Par défaut
    Merci beaucoup de votre réponse.

    Concernant la nouvelle requête que j'ai crée, pardonnez de mon ignorance, c'est parce que je pensais que la première était réservée pour récupérer tous les informations de la BDD et que je voulais avoir une requête qui permet de lister de A à Z du coup j'ai créer la nouvelle requête...

    Je viens d'apprendre qu'on peut tout récupérer et manipuler à la fois dans la même requête...

    Et je vous remercie aussi pour l'explication concernant le bug du fait que j'ai oublié de fermer fetch() sur cette nouvelle requête ($listing_az).

    Merci beaucoup et bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tri par ordre croissant
    Par KinF dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 13/12/2008, 20h19
  2. Trier un tableau par ordre croissant
    Par Halleck dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 01/11/2004, 00h04
  3. [CR8] Groupes nommés par ordre spécifié
    Par PschittN dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/05/2004, 23h46
  4. Tri par ordre alphabétique
    Par orus8 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 17/04/2003, 19h27
  5. [] Tri d'un tableau par ordre alphabétique
    Par cafeine dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/09/2002, 08h43

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