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 :

[SQL] problème de classification


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Par défaut [SQL] problème de classification
    mon probleme est le suivant

    je fais la requete suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete = "select COM_CODIGO,COM_NOMBRE from san_comarcas order by COM_CODIGO,COM_NOMBRE";
    mais le probleme est que je n'obtien pa vraiment le resultat espéré voici un petit apercu:

    0
    1
    10
    11
    12
    2
    20
    21
    22
    .
    .
    .
    .
    comment doit-je modifier la requette????

    merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Par défaut
    Typiquement cela vient du faire que ton code pays est déclaré en varchar, et du coup en terme de caractères "2" est plus grand que "10".

    Le mieux à mon avis si le problème vient de la serait plutot d'uniformiser la base de données, en donnant le meme nombre de caractères à chaque code pays (transformer "1" en "01" par exemple).

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Par défaut
    merci mec

  4. #4
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Le mieux serait de passer le champ en integer vu que tu veux stocker des entiers ^^ (ou smallint)

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Par défaut
    le sousis c'est que j'ai pas acces a ma base de donné avant mardi et je suis pas sur d'etre autorisait a faire cette modif donc pour le moment je fait un classement par ordre alphabetique et je propose cette alternative aux autres


    merci

  6. #6
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Si tu peux absolument pas toucher à la base tu peux utiliser LPAD pour ton tri, ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...ORDER BY LPAD(code_pays, '0', 3);
    3 étant le nombre maximal de digit utilisés pour le code pays.

  7. #7
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Par défaut
    ma requete est devenue la suivante suite a ton conseil mais elle me fais un rangement par ordre alphabetique et ne prent pas en conte le code des comarcas(comarcas est equivalant a region plus ou moin en français)



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete = "select COM_CODIGO,COM_NOMBRE from san_comarcas order by rpad('COM_CODIGO','0',2),COM_NOMBRE";
    que doit-je modifier stp

  8. #8
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Par défaut
    offet il faut utiliser rpad ou lpad

    mon code de comarcas est en char 2byte

  9. #9
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    c'est lpad pour compléter ta chaîne sur la gauche avec des 0.

  10. #10
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Par défaut
    il veut rien savoir il continu en prendre en conte les nom et pas les code

    ma requete est la suivante quesqui cloche?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete = "select COM_CODIGO,COM_NOMBRE from san_comarcas order by lpad('COM_CODIGO','0',2),COM_NOMBRE";

  11. #11
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Y a pas de guillemets pour un nom de colonne dans une commande sql ^^ :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    lpad('COM_CODIGO','0',2)
     
    lpad(COM_CODIGO,'0',2)

  12. #12
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Par défaut
    merci

  13. #13
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Par défaut
    en faite sa marche toujour pas



    j'en est trop mare de se php de mer....


    voici ma requete si quelqu'un y voit quelque chose a redire merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete = "select COM_CODIGO,COM_NOMBRE from san_comarcas order by lpad(COM_CODIGO,'0',2),COM_NOMBRE";

  14. #14
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 360
    Par défaut
    on c'est jamais si le probleme venait d'ailleur dans la page je vous laisse le reste du code qui va avec


    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    <?php																		
    	session_start();
    	$card_grant=$_SESSION['card'];
    	$tablo_grant=$_SESSION['tablo_grant'];
     
    	echo "mapa SANITARIO<br />";
    	echo "Comarcas :<br />";
    	include("connec_bdd.php");
    	$requete = "select COM_CODIGO,COM_NOMBRE from san_comarcas order by lpad(COM_CODIGO,'0',2),COM_NOMBRE";
    	$stmt=ociparse($connexion, $requete);
    	ociexecute($stmt);
    	$nb_comarcas=0;
    	while(ocifetch($stmt))
    	{
    		$tablo_comarcas_codigo[$nb_comarcas]=ociresult($stmt,"COM_CODIGO");
    		$tablo_comarcas_nombre[$nb_comarcas]=ociresult($stmt,"COM_NOMBRE");
    		$nb_comarcas++;
    	}
    	echo "hay $nb_comarcas comarcas<br />";
    	$nb_page_comarcas=ceil($nb_comarcas/20);
    	echo "Nb page: $nb_page_comarcas<br />";
    	if(isset($_GET['page_comarcas']))
    	{
    		$page_courante=intval($_GET['page_comarcas']);
    		if ($page_courante>$nb_page_comarcas)
    		{
    			$page_courante=$nb_page_comarcas;
    		}
    		if ($page_courante<1)
    		{
    			$page_courante=1;
    		}
    	}
    	else
    	{
    		$page_courante=1;
    	}
    	echo "page courente: $page_courante<br />";
    	$j=20*($page_courante-1);
    	$id=0;
    	echo"<table>";
    	while ($id<20 && $j<$nb_comarcas)
    	{
    		echo"<tr>";
    			echo "<td>".$tablo_comarcas_codigo[$j]."</td><td>".$tablo_comarcas_nombre[$j]."</td>";
    		echo"</tr>";
    		$id++;
    		$j++;
    	}
    	echo"</table>";
    	echo "<br />";
    	echo "<br />";
    	echo "Liste des page :<br />";
    	for ($i=1;$i<=$nb_page_comarcas;$i++)
    	{
    		echo '<a href="comarcas.php?page_comarcas='.$i.'">'.$i.'</a> ';
    	}
     
    ?>

Discussions similaires

  1. Access/SQL : Problème avec Count
    Par Taurëndil dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/01/2005, 15h49
  2. [SQL] problème pour faire ma requete
    Par seb.briet dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/12/2004, 16h51
  3. [PL/SQL] problème de trigger
    Par Chuck67 dans le forum Oracle
    Réponses: 14
    Dernier message: 09/12/2004, 23h17
  4. [SQL] problème avec les date et les group By
    Par Stef784ever dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/11/2004, 09h18
  5. [Debutant][Join Sql] problème de join
    Par ultimax dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/11/2004, 12h01

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