Soshin Posté 11 Janvier 2007 Posté 11 Janvier 2007 (modifié) Salut à tout le monde ! c'est avec joie que j'ai parcouru ce forum, et c'est avec la même joie que je poste mon premier sujet ! Je suis en train de créer une page d'administration pouvant gérer le statut online/offline des différentes pages de mon site. Mon site sera en 5 langues. J'ai choisi de stocker les informations de chaque langue dans des tables séparées : info_fr, info_en, info_de, info_nl et info_it. Dans chaque table, j'ai stocké le nom de mes pages, et leurs états respectifs (1=online ou 0=offline). par exemple, pour ma table info_fr du type page ---> etat :page1 ---> 1 page2 ---> 0 page3 ---> 1 etc... J'ai donc créé une fonction qui importe les états des pages, qui affiche les résultats, et coche un radio, en fonction de ce qu'il a trouvé. Vous comprendrez mieux avec l'image suivante : Voici ma fonction : function etatpages($lang) { $req = "SELECT page, etat FROM info_".$lang; $result = mysql_query($req) or die ("impossible d'importer l'état des pages de la table info_$lang"); $i=0; while($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $display = $row[etat]; if ($i == 0) { $page = "PAGE 1"; $name = "page1".$lang; } elseif ($i == 1) { $page = "PAGE2"; $name = "page2".$lang; } elseif ($i == 2) { $page = "PAGE3"; $name = "page3".$lang; } ?> <b><? echo $page; ?> : </B><INPUT TYPE="radio" NAME="<? echo $name; ?>" value="0"<? if ($display == 0) echo " CHECKED"; ?>><FONT STYLE="color:red">hors-ligne</FONT> <INPUT TYPE="radio" NAME="<? echo $name; ?>" VALUE="1"<? if ($display == 1) echo " CHECKED"; ?>><FONT STYLE="color:green">en-ligne</FONT><BR> <? $i++; }; mysql_close(); return;} Finalement, quand j'appelle etatpages(fr); J'obtiens bien ce que je souhaite. Le problème vient lorsque j'appelle ceci : etatpages(fr);echo '<BR>';etatpages(en);echo '<BR>';etatpages(de);echo '<BR>';etatpages(nl);echo '<BR>';etatpages(it; La première focntion s'affiche correctement, et puis j'obtiens l'erreur suivante : Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home.8/*******/www/administration.php on line 8 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home.8/*****/www/administration.php on line 8 impossible d'importer l'état des pages de la table info_en Quelqu'un a-t-il la solution à mon problème ???? Un grand merci d'avance Modifié 11 Janvier 2007 par captain_torche
Dan Posté 11 Janvier 2007 Posté 11 Janvier 2007 Lorsque tu fais appel aux fonctions mysql dans ta fonction etatpages(), tu exécutes un mysql_close() au premier passage. Donc tu ne peux plus accéder à la base de données ensuite. Tu peux retirer le mysql_close() de ta fonction et le mettre à la fin de tes invocations de celle-ci... ou laisser mysql effectuer de lui-même une fermeture en fin de script (c'est automatique dans ce cas) Dan
captain_torche Posté 11 Janvier 2007 Posté 11 Janvier 2007 Il se passe juste que ta fonction ferme la connexion à MySQL (avec l'appel à mysql_close() en fin de fonction), mais n'ouvre pas de connexion en début de fonction. Ce qui fait que ta connexion à la base est coupée en fin de fonction, mais n'est pas rétablie pour le prochain appel à la fonction. [Edit : Dan a été plus rapide ]
Soshin Posté 11 Janvier 2007 Auteur Posté 11 Janvier 2007 #@!£$.... (désolé, mais c'est le premier truc qui sort de ma bouche après avoir lu vos réponses !!! ) Je galère dessus depuis quelques jours, je parcours le web, les forums, je prends le temps de déposer un beau topic pour une erreur aussi bête ??? Et bien oui, mesdames et messieurs, celà fonctionne très bien maintenant.... Allez, un très grand merci à vous deux, à bientôt ! [Edit captain_torche : bon, je censure un peu pour la bienséance ] Aucun problème....
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant