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 :

Utilisation de "Order by" [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 50
    Par défaut Utilisation de "Order by"
    bonjour,
    Voici mon problème : Je veux effectuer une requête pour afficher mes champs dans un certain ordre. L'ordre est sélectionner via un formulaire et récupérer en POST.
    Lorsque je veux trier par "id_room", ça ne marche pas. Il le tri comme son envie !
    exemple :
    1095
    139
    171
    241
    415
    56
    799
    908
    114
    209
    7
    792
    Voilà mon code qui me sert pour ma requête :

    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
    <?php
    	$req = mysql_query('SELECT * FROM t_validation ORDER BY   t_validation.'.$_POST["orderby"].' ASC') or die('Échec de la requête : ' . mysql_error());
    	while($result = mysql_fetch_array($req)) {
    		echo '<input type="hidden" name="id_val" value="'.$result["id_validation"].'">';
    		echo '<input type="hidden" name="id_room" value="'.$result["id_room"].'">';
    		echo '<input type="hidden" name="id_student" value="'.$result["id_student"].'">';
    		echo "<tr>" ;
    		echo "<td>".$result['id_validation']."</td>";
    		echo "<td>".$result['id_student']."</td>";
    		echo "<td>".$result['id_room']."</td>";
    		echo "<td>".$result['priority_choice']."</td>";
    		echo '<td><input type="submit" id="valid" name="valid" value="Accepted" /></td>';
    		echo "</tr>";
    	}
    	?>
    Merci de votre aide

    cordialement,

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Tu as vérifié ta requête dans phpMyamin pour voir si cela donne le même résultat ?
    Peut-être un problème avec le type de données défini pour id_room ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 50
    Par défaut
    Salut,
    sur PhpMyAdmin l'ordre ne corresponds pas non plus.

    la requête :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT * 
    FROM  `t_validation` 
    ORDER BY  `t_validation`.`id_room` ASC 
    LIMIT 0 , 30

    id_room est un Varchar. J'ai environ 2000 entrées, et du coup il me refusait le INT.
    Mon problème doit venir de là.

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Citation Envoyé par Floyus Voir le message
    id_room est un Varchar. J'ai environ 2000 entrées, et du coup il me refusait le INT.
    y'a pas de rapport avec le nombre d'entrées. INT accepte des valeurs entre -2147483648 et 2147483647

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2013
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2013
    Messages : 50
    Par défaut
    D'accord, mais pourtant lorsque que je veux changer, phpmyadmin m'affiche une erreur :
    #1439 - Display width out of range for column 'id_room' (max = 255)

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Y'a un pb quelque part car 255 ressemble plutôt à du TINYINT unsigned (la doc est )

    EDIT Ou alors 255 c'est la taille max d'un varchar...

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

Discussions similaires

  1. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55

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