Problème de connexion...

le rouge
Invité n'ayant pas de compte PHPfrance

20 juin 2006, 11:21

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!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 juin 2006, 11:48

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

le rouge
Invité n'ayant pas de compte PHPfrance

20 juin 2006, 11:50

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...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 juin 2006, 11:55

C'est que tu as dans ton code deux fonctions qui portent le même nom.. vérifies les includes :)

le rouge
Invité n'ayant pas de compte PHPfrance

20 juin 2006, 11:59

j'ai tout vérifier, il n'y a jamais le même nom...

ViPHP
ViPHP | 2144 Messages

20 juin 2006, 12:00

Mets nous le message d'erreur complêt...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 juin 2006, 12:02

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

le rouge
Invité n'ayant pas de compte PHPfrance

20 juin 2006, 12:09

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?

le rouge
Invité n'ayant pas de compte PHPfrance

20 juin 2006, 12:15

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!!!

le rouge
Invité n'ayant pas de compte PHPfrance

20 juin 2006, 12:26

Est-ce que si je modifie ma connexion mysql_pconnect en mysql_connect ça pourrait jouer vouy croyez?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 juin 2006, 12:28

Est-ce que, par hasard, tu mets la valeur de retour de tes fonctions de connection dans une seule et même variable ? ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

le rouge
Invité n'ayant pas de compte PHPfrance

20 juin 2006, 12:32

ça?
return $connexion; 
Oui alors si c'est ça...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 juin 2006, 12:35

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;
;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

le rouge
Invité n'ayant pas de compte PHPfrance

20 juin 2006, 12:37

Hein, traduction?

Non, sans rire, je devrais faire quoi alors?

Je devrais modifier ma variable connexion dans chaque page?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 juin 2006, 12:40

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer