Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/02/2007, 09h45   #1
Membre à l'essai
 
Inscription : mai 2006
Messages : 62
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mai 2006
Messages : 62
Points : 22
Points : 22
Envoyer un message via MSN à lothar59
Par défaut Requête SQL sur tables non connues à l'avance (regex)

J'ai ceci :

Code :
$sql = "SELECT identifiant, mot_de_passe FROM `annuaire2004` WHERE identifiant = '".addslashes($login)."'";
Mais j'aimerai changer le annuaire2004 de facon a avoir un truc du genre /^annuaire(\d{4})$/ parce que je ne connaît pas le nom de ma table à l'avance.

Est-ce possible ? (Je n'ai vu que des exemples qui s'appliquaient aux valeurs de la table)

Merci davance.
lothar59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 10h15   #2
Membre éprouvé
 
Avatar de goodpz
 
Inscription : février 2007
Messages : 475
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 475
Points : 474
Points : 474
Ca ne fonctionnera pas

Par contre tu peux rapatrier les noms des tables de la base et faire ton choix par rapport aux infos retournées.

Code :
SHOW TABLES FROM the_db [LIKE 'pattern']
goodpz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2007, 10h33   #3
Membre à l'essai
 
Inscription : mai 2006
Messages : 62
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mai 2006
Messages : 62
Points : 22
Points : 22
Envoyer un message via MSN à lothar59
Oui c'est ce que je venais de faire plus ou moins. Mais merci d'avoir répondu à ma question.

developpez.com est ton ami

Pour ceux qui cherchent à faire la même chose :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$query = "SHOW TABLES";
	
$result = mysql_query($query)
or die("Query Show tables failed : " . mysql_error());
  	

	while ($line = mysql_fetch_row($result)) 
	{
		if (preg_match("/^annuaire\d{4}$/", $line[0], $matches)) 
		{
			$i = preg_replace("/^annuaire(\d{4})$/", "$1", $matches[0]);
		
			// On va chercher le mot de passe afférent à ce login
  			$sql = "SELECT identifiant, mot_de_passe FROM annuaire".$i." WHERE identifiant = '".addslashes($login)."'";
C'est certainement pas la meilleure méthode, mais ça à le mérite de fonctionner.
lothar59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h25.


 
 
 
 
Partenaires

Hébergement Web