Renseignement ordre SQL
Résolu
zatox
Messages postés
640
Date d'inscription
Statut
Membre
Dernière intervention
-
zatox Messages postés 640 Date d'inscription Statut Membre Dernière intervention -
zatox Messages postés 640 Date d'inscription Statut Membre Dernière intervention -
Bonjour, sur le site http://www.plongee-sous-glace.fr/ j'utilise une base sql qui contient 10 tables pour chaque langue. Toutes les tables ont strictement la même structure. Je voudrais savoir s'il est possible de passer dans les ordres sql le nom de la table accédée en paramètre de telle façon que je puisse écrire un seul ordre qui serait appelé par un include chaque fois que j'en ai besoin, le nom de la table serait passé en paramètre, ceci afin de n'avoir pour un seul ordre qu'une seule modif à faire dans le cas d'évolution des tables ? En effet, actuellement, quand je dois faire évoluer mes tables (rajout d'une colonne par exemple, pour un ordre je dois faire 10 modifs. Exemple:
$retour = mysql_query('SELECT chapitre, contenu, groupe, nom_g, position, nom_p, http, videoweb, videoflv, diaporama, nbespace, nbsautligne FROM news_piauplongee_fr ORDER BY groupe DESC, position ASC LIMIT 0, 100');
$retour = mysql_query('SELECT chapitre, contenu, groupe, nom_g, position, nom_p, http, videoweb, videoflv, diaporama, nbespace, nbsautligne FROM centre_piauplongee_fr ORDER BY groupe DESC, position ASC LIMIT 0, 100');
Ces 2 ordres sont identiques, il n'y a que le nom de la table qui change, avec une variable comme nom de table, je n'aurait besoin que d'un seul ordre précédé de l'alimentation de la table à laquelle je veux accéder.
Je ne sais pas si c'est possible.
Merci pour vos réponses.
$retour = mysql_query('SELECT chapitre, contenu, groupe, nom_g, position, nom_p, http, videoweb, videoflv, diaporama, nbespace, nbsautligne FROM news_piauplongee_fr ORDER BY groupe DESC, position ASC LIMIT 0, 100');
$retour = mysql_query('SELECT chapitre, contenu, groupe, nom_g, position, nom_p, http, videoweb, videoflv, diaporama, nbespace, nbsautligne FROM centre_piauplongee_fr ORDER BY groupe DESC, position ASC LIMIT 0, 100');
Ces 2 ordres sont identiques, il n'y a que le nom de la table qui change, avec une variable comme nom de table, je n'aurait besoin que d'un seul ordre précédé de l'alimentation de la table à laquelle je veux accéder.
Je ne sais pas si c'est possible.
Merci pour vos réponses.
A voir également:
- Renseignement ordre SQL
- Excel trier par ordre croissant chiffre - Guide
- Logiciel sql - Télécharger - Bases de données
- Triez cette liste par ordre alphabétique des villes et par note de la meilleure à la moins bonne. quel mot est formé par les 8 premières lettres de la colonne code ? ✓ - Forum Excel
- Classer les applications par ordre alphabétique iphone - Guide
- Sql (+) - Forum Programmation
3 réponses
Salut!
Oui tu peux définir ta table comme variable et appeler une seule fois!
Essai ceci(je n'ai aps testé):
Oui tu peux définir ta table comme variable et appeler une seule fois!
Essai ceci(je n'ai aps testé):
$table=nom de ta table; select * from $table where.... ;
Bonjour, merci pour ta réponse, mais ça, j'avais déjà essayé et ça ne marche pas. Je viens de refaire un test pour m'en assurer et je te confirme que ça ne marche pas, on n'est pas dans du php mais dans un ordre sql donc en écrivant: select * from $table where.... ; en fait tu sélectionne la table qui s'appelle $table. Peut-être y a-t-il une syntaxe particulière, mais comme ça ce n'est pas bon.
Si quelqu'un a une idée, merci pour vos réponses. Je continue à chercher, si je trouve je poste le résultat.
Si quelqu'un a une idée, merci pour vos réponses. Je continue à chercher, si je trouve je poste le résultat.
Bonjour, j'ai eu la réponse dans le forum bases de données, pour ceux que ça interresse la voici:
C'était mes simples quotes dans l'ordre SELECT, avec les guillemets c'est bon .
Donc solution: l'ordre SELECT doit être entouré par des guillemets et pas par des quotes simples, comme ça
$table = news_piauplongee_fr;
$retour = mysql_query("SELECT chapitre, contenu, groupe, nom_g, position, nom_p, http, videoweb, videoflv, diaporama, nbespace, nbsautligne FROM $table ORDER BY groupe DESC, position ASC LIMIT 0, 100");
Voilà merci à tous.
C'était mes simples quotes dans l'ordre SELECT, avec les guillemets c'est bon .
Donc solution: l'ordre SELECT doit être entouré par des guillemets et pas par des quotes simples, comme ça
$table = news_piauplongee_fr;
$retour = mysql_query("SELECT chapitre, contenu, groupe, nom_g, position, nom_p, http, videoweb, videoflv, diaporama, nbespace, nbsautligne FROM $table ORDER BY groupe DESC, position ASC LIMIT 0, 100");
Voilà merci à tous.