Page 1 sur 2

Problème de connexion...

Posté : 20 juin 2006, 11:21
par le rouge
Bonjour,

Alors j'explique mon cas:

J'ai un "menu" sur la gauche avec des infos style "Connecté en tant que "un nom"" ou Statut : "le statut" qui vont chercher les infos dans une base mysql. Donc je me connecte avec par exemple connexion1 et voilà.

Le problème est que j'ai un autre élément à droite qui va chercher lui aussi des infos sur des bases mysql, mais des bases différentes. Je me connecte ausse avec le fichier connexion2, mais ça me mets des erreurs.

Les fichiers connexion1 et connexion2 sont les même mises à part les infos mysql (donc la base etc.)

Comment faire pour faire cohabiter des connexions mysql différentes.

Le code de connexion:

<?php

// BASE MYSQL

define("NOM","");
define("PASSE","");
define("BASE","");
define("SERVEUR","localhost");

// FONCTION CONNEXION

function utilisateurs_connexion ($pNom, $pPasse, $pBase, $pServeur)
{
	$connexion = mysql_pconnect ($pServeur, $pNom, $pPasse);
	
	if(!$connexion)
	{
		echo"Connexion au serveur ".$pServeur." impossible\n";
		exit;
	}
	
	if(!mysql_select_db ($pBase, $connexion))
	{
		echo"Connexion à la base impossible\n<br />\n";
		echo"Message de MySQL:" .mysql_error($connexion);
		exit;
	}
	
	return $connexion;
} 

?>

Je signale que le nom de ma fonction connexion change sur chaque fichier...

Merci!

Posté : 20 juin 2006, 11:48
par zeus
Quel est le message d'erreur ?

Je sais qu'avec mysql_connect(), il faut un 4ème argument pour faire cohabiter plusieurs connection mais avec mysq_pconnect(), il semblerait que ça soit gérér automatiquement puisque ce 4éme argument concerne une autre config de la fonction :-k

Posté : 20 juin 2006, 11:50
par le rouge
Le message d'erreur est simple, c'est qu'il me mets un fatal error parce que il ne peut pas définir ma fonction connexion parce que elle est déjà définit.

Et si je ferme ma balise php et que je la réouvre, ça joue, mais après il garde la même base tout le temps...

Posté : 20 juin 2006, 11:55
par Ryle
C'est que tu as dans ton code deux fonctions qui portent le même nom.. vérifies les includes :)

Posté : 20 juin 2006, 11:59
par le rouge
j'ai tout vérifier, il n'y a jamais le même nom...

Posté : 20 juin 2006, 12:00
par iclo
Mets nous le message d'erreur complêt...

Posté : 20 juin 2006, 12:02
par zeus
Je pense que l'un des 2 fichiers de connection est également rappellé dans la partie centrale de ton site, d'où la redefinition ;)

Pour eviter cela, tu peut utiliser require_once() ou include_once() pour n'inclure qu'une fois chaque fichier et donc eviter les redéclarations de fonctions

Posté : 20 juin 2006, 12:09
par le rouge
Oui, c'est vrai parce que je mets le statut de l'utilisateurs à gauche et aussi sur la page d'accueil à droite.

Mais le fichier connexion est appelé en require_once...

Donc je dois mettre aussi le fichier central et celui de gauche en include_once?

Posté : 20 juin 2006, 12:15
par le rouge
J ai essayé, mais c est chaque fois le même problème:
Erreur dans l'exécution de la requête 'SELECT newsletter_email FROM newsletter'.
Message de MySQL:Table 'ecupodjuch11.newsletter' doesn't exist
Voilà le message d'erreur alors que ma base de donnée n'est pas ecupodjuch11 pour la newsletter, mais ecupodjuch10...

Il ne prends pas en compte mon :
require_once("pv/co/nl.php");
qui est dans le fichier nl et qui défini la base comme ecupodjuch10!!!

Posté : 20 juin 2006, 12:26
par le rouge
Est-ce que si je modifie ma connexion mysql_pconnect en mysql_connect ça pourrait jouer vouy croyez?

Posté : 20 juin 2006, 12:28
par zeus
Est-ce que, par hasard, tu mets la valeur de retour de tes fonctions de connection dans une seule et même variable ? ;)

Posté : 20 juin 2006, 12:32
par le rouge
ça?
return $connexion; 
Oui alors si c'est ça...

Posté : 20 juin 2006, 12:35
par zeus
Tout a fait, si tu récupéres 2 fois dans la même variable ...
$connexion = connexion();
$connexion = connexion2();
c'est comme si tu fait
$var = 1;
$var = 2;
;)

Posté : 20 juin 2006, 12:37
par le rouge
Hein, traduction?

Non, sans rire, je devrais faire quoi alors?

Je devrais modifier ma variable connexion dans chaque page?

Posté : 20 juin 2006, 12:40
par zeus
Bah, ça me semble simple, si tu récupére la 1er connection puis le 2nd connection dans la même variable, tu as perdu la 1ere ... :roll:
$var = 1;
$var = 2;
içi, tu ne retrouvera jamais la valeur 1 vu que tu l'a écrasée pour mettre la valeur 2 ...
$connexion = connexion();
$connexion2 = connexion2();
Il faut que tu utilises 2 variables différentes pour stocker tes connections différentes :D