Je veux connecter à des base de données dans une boucle. On doit l'utiliser l'un après l'autre. Les URLs sont déjà dans un table, il suffit de parcourir les table pour avoir les urls. Mais quand je crées un objet pour la connexion, il n'y aura d'affichage.
Si quelqu'un peur m'aider, j'en suis reconnaissant.
Merci
Connecter à plusieurs base MySQL dans une boucle
Forum rules
Règles du forum
Règles du forum
-
- Joomla! Fledgling
- Posts: 4
- Joined: Sat Feb 16, 2008 6:37 am
- ouly
- Joomla! Ace
- Posts: 1074
- Joined: Sun Aug 21, 2005 9:18 pm
- Contact:
Re: Connecter à plusieurs base MySQL dans une boucle
Bonjour rivjoyce,
Le problème n'est pas suffisamment détaillé pour que la provenance de celui-ci puisse être trouvée.
Un bout de code ?
ouly
Le problème n'est pas suffisamment détaillé pour que la provenance de celui-ci puisse être trouvée.
Un bout de code ?
ouly
-
- Joomla! Fledgling
- Posts: 4
- Joined: Sat Feb 16, 2008 6:37 am
Re: Connecter à plusieurs base MySQL dans une boucle
Voici l'extrait du code :
Code: Select all
function extraction_data($host, $user, $password, $dbase, $dbprefix){
$cnn_1 = new database( $host, $user, $password, $dbase, $dbprefix );
$cnn_1->setQuery("SELECT fieldid,data_txt,itemid FROM #__sobi2_fields_data WHERE fieldid=7 OR fieldid=9 ORDER BY itemid ASC");
$cnn_1->query();
$rs_nbr=$cnn_1->getNumRows();
$donnees=$cnn_1->loadObjectList();
$j=0;
while($j<$rs_nbr){
$rs_sobi=$donnees[$j];
$data_sobi[$j]=$rs_sobi->data_txt;
$j++;
}
$i=0;
$k=1;
while($i<$rs_nbr){
$data_sobi2[$i][0]=0;
$data_sobi2[$i][1]=$data_sobi[$i];
$data_sobi2[$i][2]=$data_sobi[$k];
$data_sobi2[$i][3]=date("d-[URL banned] H:i:s");
$k+=2;
$i+=2;
}
$nombre=sobi2letterman::insertion_data($data_sobi2, $j);
/*********************************************************************************/
/************** IMPORTATION DES UTILISATEURS ENREGISTRES *************************/
/*********************************************************************************/
$cnn_1->setQuery("SELECT id, name, email, registerDate FROM jos_users");
$cnn_1->query();
$rs_nbr=$cnn_1->getNumRows();
$donnees=$cnn_1->loadObjectList();
$i=0;
while($i<$rs_nbr){
$rs_users=$donnees[$i];
$data_sobi2[$i][0]=$rs_users->id;
$data_sobi2[$i][2]=$rs_users->name;
$data_sobi2[$i][1]=$rs_users->email;
$data_sobi2[$i][3]=$rs_users->registerDate;
$i++;
}
sobi2letterman::insertion_data($data_sobi2, $i);
}
function Importer(){
/*********************************************************************************/
/********************** IMPORTATION SOBI2 ENREGISTRES ****************************/
/*********************************************************************************/
//RECUPERATION DES DONNEES DANS DES BASE DE DONNEES
global $database;
$database->setQuery("SELECT * FROM #__liste_srvs");
if (!$database->query()) {
echo $database->stderr();
return false;
}else $nbr=$database->getNumRows();
$donnees_ext=$database->loadObjectList();
$data_to_var_1=$donnees_ext[0];
$host=$data_to_var_1->adresse;
$user=$data_to_var_1->usr;
$password=$data_to_var_1->pass;
$dbase=$data_to_var_1->basededonnees;
$dbprefix=$data_to_var_1->prfx;
if(isset($host) && isset($user) && isset($dbase) && isset($dbprefix)){
$sobi2letterman::extraction_data($host, $user, $password, $dbase, $dbprefix);
//Le premier marche. Les donnees sont dans la table letterman_subscribers mais pas d'affichage
}
$data_to_var_1=$donnees_ext[1];
$host=$data_to_var_1->adresse;
$user=$data_to_var_1->usr;
$password=$data_to_var_1->pass;
$dbase=$data_to_var_1->basededonnees;
$dbprefix=$data_to_var_1->prfx;
if(isset($host) && isset($user) && isset($dbase) && isset($dbprefix)){
$sobi2letterman::extraction_data($host, $user, $password, $dbase, $dbprefix);
//Le deuxieme ne marche pas.
}
$data_to_var_1=$donnees_ext[2];
$host=$data_to_var_1->adresse;
$user=$data_to_var_1->usr;
$password=$data_to_var_1->pass;
$dbase=$data_to_var_1->basededonnees;
$dbprefix=$data_to_var_1->prfx;
if(isset($host) && isset($user) && isset($dbase) && isset($dbprefix)){
$sobi2letterman::extraction_data($host, $user, $password, $dbase, $dbprefix);
//Le troisieme ne marche pas.
}
$tmpl =& sobi2letterman::createTemplate();
$tmpl->setAttribute( 'body', 'src', 'bienvenue2.html' );
$tmpl->addVar( 'body', 'nombre', $afficher );
$tmpl->displayParsedTemplate( 'form' );
}
- ouly
- Joomla! Ace
- Posts: 1074
- Joined: Sun Aug 21, 2005 9:18 pm
- Contact:
Re: Connecter à plusieurs base MySQL dans une boucle
Notes :
Le plus simple est de spécialiser la classe database. Il suffit ensuite d'adapter le code du constructeur de la classe database dans la nouvelle classe pour que le tour soit joué...
D'un point de vue performance, fermez les connexions aux bases de données une fois qu'elles ne sont plus nécessaires.
- Il est probable que la fonction isset() n'effectue pas le test désiré. Regardez plutôt du côté de empty().
- Utilisez davantage les boucles for ( ... ; ... ; ... ) {}, cela rendra le code plus lisible et moins sujet aux bugs de maintenance.
- Utilisez la balise BBCode [ code ] ... [ /code ] afin d'afficher du code sur le forum.
Le plus simple est de spécialiser la classe database. Il suffit ensuite d'adapter le code du constructeur de la classe database dans la nouvelle classe pour que le tour soit joué...
D'un point de vue performance, fermez les connexions aux bases de données une fois qu'elles ne sont plus nécessaires.