Page 1 sur 2

Requete like sur Liste des département par régions??

Posté : 23 juin 2008, 12:25
par speccy666
Je fais la requête suivante qui me parait bonne directement dans l'interface mysql:
select nom from listeregions where numerosdpt like '62%'

Mais je n'obtiens aucun enregistrements...

Où est le pb svp?

merci.
-- Structure de la table `listeregions`
-- 

CREATE TABLE `listeregions` (
  `nom` varchar(30) NOT NULL,
  `numerosdpt` varchar(30) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- 
-- Contenu de la table `listeregions`
-- 

INSERT INTO `listeregions` (`nom`, `numerosdpt`) VALUES 
('alsace', '67 68'),
('aquitaine', '24 33 40 47 64'),
('auvergne', '03 15 43 63'),
('basse-normandie', '14 50 61'),
('bourgogne', '21 58 71 89'),
('bretagne', '22 29 35 56'),
('centre', '18 28 36 37 41 45'),
('champagne-ardenne', '08 10 51 52'),
('territoires outre-mer', '98'),
('corse', '2A 2B'),
('departements outre-mer', '97'),
('franche-comté', '25 39 70 90'),
('haute-normandie', '27 76'),
('ile-de-France', '75 77 78 91 92 93 94 95'),
('languedoc-roussillon', '11 30 34 48 66'),
('limousin', '19 23 87'),
('lorraine', '54 55 57 88'),
('midi-pyrénées', '09 12 31 32 46 65 81 82'),
('nord-pas-de-calais', '59 62'),
('pays de la loire', '44 49 53 72 85'),
('picardie', '02 60 80'),
('poitou-charentes', '16 17 79 86'),
('provence-alpes-cotes d''azur', '04 05 06 13 83 84'),
('rhônes-alpes', '01 07 26 38 42 69 73 74');

Posté : 23 juin 2008, 12:29
par katagoto
Car aucunes entrées ne commence par 62...

Posté : 23 juin 2008, 12:30
par guilt92
Essaye :

Code : Tout sélectionner

select nom from listeregions where numerosdpt like '%62%'
car aucune de tes valeurs dans ta base ne commence par 62...

EDIT : grillé :evil:

Posté : 23 juin 2008, 13:18
par Truc
Car aucunes entrées ne commence par 62...
Mouais ok... mais encore... une solution à proposer aussi ?

Solution...
Remodéliser ta table !
Il vaut mieux éviter d'avoir plusieurs données dans un même champ (ici les numéros de département).
Pour faire mieux crée une nouvelle table "listeNumRegion" avec (id_region, num_departement).
D'ailleurs il te faudrait aussi un id_region dans la table "listeregions".

Pour chaque numéro de département tu crées une entrée dans listeNumRegion avec le couple id de la region et le département associé.
Exemple pour le "Nord pas de calais" et "picardie"

Code : Tout sélectionner

id_region num_departement 1 59 1 62 2 02 2 60 2 80
Pour des id_region (à créer pour la table listeregions) de 1 pour le NPC et 2 pour Picardie.

Tu pourras donc facilement retrouver la région du département 59 en croisant les deux tables pour avoir le nom de la région en plus

Posté : 23 juin 2008, 14:48
par katagoto
Car aucunes entrées ne commence par 62...
Mouais ok... mais encore... une solution à proposer aussi ?
Il pose une question j'y répond, après on me reproche de trop donner mon avis...

Bref, nom faire %62% est beaucoup plus simple et ça donne le même résultat...

Posté : 23 juin 2008, 15:42
par Truc

Bref, nom faire %62% est beaucoup plus simple et ça donne le même résultat...
Il me contredit en plus :lol:

Ce que j'ai dis est tout à fait juste hein ;-)
Certes le %62% aussi... mais dans d'autres cas plus ardus avec beaucoup plus de données il vaut mieux séparer et prendre les bonnes habitudes de suite ;)

Posté : 23 juin 2008, 15:54
par katagoto
y a que 100 région en France, certes cette structure serait ingérable pour la gestion des villes par exemple, sur le fond tu as raison :lol: mais nous somme là pour répondre à un problème pas pour trouver un moyen de le contourner, chacun ses principes 8-)

Posté : 23 juin 2008, 15:55
par caroube
Bref, nom faire %62% est beaucoup plus simple et ça donne le même résultat...
On peut également tout écrire en dur dans le fichier PHP et ne pas utiliser de base de données, ce sera encore plus simple :cry:

Bon, sinon plutôt que de réinventer la poudre, la classification des régions (avec leur code) et des départements (avec leur code) se trouve ici
Il suffit de recopier la structure des fichiers txt et y injecter les données.
a que 100 région en France,
Euh non ....
certes cette structure serait ingérable pour la gestion des villes par exemple
Autant faire bien du premier coup. Comme ça le jour où il aura à gérer les villes en France ou les galaxies dans l'espace, il n'aura pas à se reposer la question : juste à faire du copier/coller.

Posté : 23 juin 2008, 15:57
par Shrell
y a que 100 région en France, certes cette structure serait ingérable pour la gestion des villes par exemple, sur le fond tu as raison :lol: mais nous somme là pour répondre à un problème pas pour trouver un moyen de le contourner, chacun ses principes 8-)
Justement, ce que propose Truc permet de régler le problème à sa source, au prix d'une refonte partielle, par laquelle il faudra de toutes façons passer à un moment ou à un autre. Mieux vaut donc le faire le plus tôt possible ;)
La solution que tu proposes au contraire, bien que juste, n'est pas viable à long terme, justement parce qu'elle contourne le problème

Posté : 23 juin 2008, 15:57
par katagoto
De plus ça ira plus vite et ça évitera une surcharge de ta BDD :lol:

Posté : 23 juin 2008, 16:07
par speccy666
ARf! je ne savais pas que j'allais déclencher une polémique......merci à tous! et merci à Caroube pour son lien bien pratique...

Je pense qu'il est bon de voir des conseils en profondeur et qu'il est au libre choix de celui qui demande (qui apprend) d'adapter la réponse à son besoin et à son niveau.

Dans ce cas, je retiens le %variable% qui me suffit amplement.... mais j'ai compris l'autre méthode pour un cas plus lourd...
y a que 100 région en France,
Reste plus qu'à réviser la géographie KATAGOTO... :wink:


A bientôt.

Jean Marc

Posté : 23 juin 2008, 16:09
par caroube
De plus ça ira plus vite
Fausse économie de temps parce qu'elle rend la structure de la base de données atypique. Toute modification ou évolution ultérieure demandera beaucoup plus de temps que si la structure est propre dès le départ.
Parfois, il vaut mieux s'asseoir et réfléchir un peu plutôt que partir comme un dératé sur le premier coup de tête venu.
En particulier, sauf cas particuliers, une structure de base de données n'a pas à tenir compte du nombre d'enregistrements. Ce qui est valable pour 20 doit rester valable pour 20.000.

Posté : 23 juin 2008, 16:15
par caroube
Je pense qu'il est bon de voir des conseils en profondeur et qu'il est au libre choix de celui qui demande (qui apprend) d'adapter la réponse à son besoin et à son niveau.
Bien sûr que tu as cette liberté, nul ne te la conteste. Mais tu as également la liberté d'apprendre à prononcer les mots anglais avec les règles phonétiques françaises, et te dire "le jour où je rencontrerais un anglais, il sera bien temps d'apprendre à les prononcer à l'anglaise".

Justement, si tu es en train d'apprendre, autant apprendre quelque chose de correct plutôt que quelque chose de bancal. Mais encore une fois, personne ne peut te forcer.

Posté : 23 juin 2008, 16:18
par Rei Itchido
Je plussoie evidemment sur le fait de prendre de bonnes habitudes directement.
Si il te prend l'envie (ou pire le besoin) de stocker les noms de ces departements en plus de l'id, avec la solution des LIKE ça sera evidemment possible (à coup de rexeg par exemple dans des trucs du genre 62:"Pas de Calais" brrrr j'en tremble rien qu'à l'idée de voir ça dans une table ^^) mais tu vas devoir revoir TOUTE ta gestion des departements...
Avec des tables séparées, tu ajoutes juste le champ nom dans ta table departement et tu as l'info disponible.

Sans parler qu'avec les LIKE paye ton casse-tête pour la moindre modif des infos par le code.

Posté : 26 juin 2008, 21:09
par speccy666
Ben disons qu'en tant que débutant je viens de faire un site complet avec gestion de la connection, achats de crédits, tchat, système de score assez complexe, protection aux intrusions( modestement), système de jeu dynamique sous flash avec petites animations, échanges de données entre flash et sql, calcul du score sur le serveur, classement des scores par pays, département et régions...

Bref en 6 mois on peut dire que le projet a bien avancé........ tout cela pour dire que si j'en suis là c'est que j'écoute de près tout ce qu'on me conseille et qu'ensuite, ne pouvant tout assimiler d'un coup, je vais à l'essentiel.... je ne vous cache pas que j'ai découvert tout cela mais que je programme en visual basic ou autres basic depuis quelques dizaines d'années.

Ceci dit, je suis assez fier du résultat....

Vous pouvez voir et vous amuser sur mon autre réalisation ici : CRAZY CIRCUS
http://sunnygames.free.fr/intro.swf

A vous les HIGH scores!!

Merci en tout cas à vous tous et à la bonne ambiance qui règne ici.

Jean Marc.