Bonjour tous,
J'aimerai la manière dont il est possible de faire une requête vers une autre base de données car je souhaite récupérer certaines informations quelle contient. Le but étant d'afficher ces informations dans le footer de piwigo (exemple un bannière avec des liens vers des sites partenaires).
Pour le moment j'ai réussi à ne pas avoir d'erreur dans mon code en ajoutant ma requête au début du fichier database.inc.php car autrement lorsque j'en fais un plugin comme dessous :
add_event_handler('loc_end_page_tail', 'partenaires'); function partenaires() { global $template, $partenaire; $query_rsPartenaires = "SELECT id, nom, lien, logo FROM partenaires ORDER BY RAND()"; $rsPartenaires = mysql_query($query_rsPartenaires, $mon_autre_dbconnect) or die(mysql_error()); $row_rsPartenaires = mysql_fetch_assoc($rsPartenaires); $partenaire = ''; do { $partenaire .= "<li><a href='/partenaires.php?id=".$row_rsPartenaires['id']."' onclick='window.open(this.href);return false'><img src='/images/partenaires/".$row_rsPartenaires['logo']."'></a></li>"; } while ($row_rsPartenaires=mysql_fetch_array($rsPartenaires)); $template->assign('PARTENAIRE', $partenaire); }
j'ai le droit à :
Warning: [mysql error 1146] Table 'xxx.piwigo_sessions' doesn't exist
en pied de ma page
En gros j'ai l'impression que le fait que j'ouvre une nouvelle connexion tue celle de piwigo :(
J'ai cherché dans la doc et sur le forum, mais en vain.
Merci d'avance pour vos réponses,
Séb
Hors ligne
ta table elle est dans la même base que les table de Piwigo
En ligne
En non malheureusement (ou heureusement si l'on parle de l'administration du site à plusieurs personnes), elle se trouve sur une autre base de données (deux bases de données, une pour le site avec les actus et une autre pour piwigo).
Hors ligne
bonjour,
vous pouvez faire un second mysql_connect comme ceci
$ma_nouvelle_connexion = mysql_connect(....);
puis dans vos requêtes spécifier le $link_identifier :
mysql_query("....", $ma_nouvelle_connexion);
ça permet d'ouvrir une nouvelle connexion sans fermer celle de Piwigo.
à tester, j'ai un doute sur les requêtes Piwigo suivantes, qui vont peut être tenter de s’exécuter sur la nouvelle connexion, et pas celle de base (je ne sais pas comment c'est codé)
Dernière modification par mistic100 (2011-05-05 21:25:29)
Hors ligne
Merci mistic100, mais c'est déjà ce que je faisais :( C'est vraiment bizarre car je pense effectivement que le fait d'ouvrir une nouvelle connexion sur une autre base "tue" celle de piwigo. C'est encore plus flagrant quand je fais un mysql_close($ma_nouvelle_connexion), ça me donne ceci comme erreur :
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in Z:\Xampp\htdocs\galerie\include\dblayer\functions_mysql.inc.php on line 88 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in Z:\Xampp\htdocs\galerie\include\dblayer\functions_mysql.inc.php on line 88 Warning: [mysql error 1045] Access denied for user 'ODBC'@'localhost' (using password: NO) REPLACE INTO piwigo_sessions (id,data,expiration) VALUES('7F00193ej9kr0ih4ki99o245qenko4','community_user_permissions|a:5:{s:20:"upload_whole_gallery";b:0;s:20:"create_whole_gallery";b:0;s:17:"create_categories";a:0:{}s:17:"upload_categories";a:0:{}s:14:"permission_ids";a:0:{}}community_cache_key|s:20:"TbzN52T2K09SKD47A3cr";community_user_id|s:1:"2";',now()) ; in Z:\Xampp\htdocs\galerie\include\dblayer\functions_mysql.inc.php on line 654
Hors ligne