PB de connection après grosses vérifs?

Eléphant du PHP | 58 Messages

31 déc. 2007, 18:24

J'utilise Wamp 1.7.2. et j'essaie comme je peux de me connecter à la base locale ou celle déclarée chez FREE... la connection manuelle marche très bien et la base et les tables existent.

Impossible pourtant avec ce code tapé dans un fichier HTML que je démarre sous FIREFOX !

Je démarre Wamp, je le met bien ONLINE, la base existe et la table aussi.
<?
$host="localhost";
$user="root";
$pass="";
$base="scores";
mysql_connect($host,$user,$pass); // Connexion à MySQL
mysql_select_db($base)or die("Impossible d'ouvrir la base de donnees ");
 
$reponse = mysql_query("SELECT * FROM jeux_videos"); // Requête SQL
 
 
// On fait une boucle pour lister tout ce que contient la table :
 
while ($donnees = mysql_fetch_array($reponse) )
{
?>
 
<p>
<strong>NOM du jeu</strong> : <?php echo $donnees['NOM']; ?><br />
</p>
 
<?
}
mysql_close(); // Déconnexion de MySQL
?>
Où est l'erreur ? j'ai tout testé ....

A distance, même problème :
<?
$host="http://sql.free.fr";
$user="speccy666";
$pass="xxxxxxx"; // vrai mot de passe vérifié évidemment en se connectant manuellement à la base
$base="speccy666";
mysql_connect($host,$user,$pass); // Connexion à MySQL
mysql_select_db($base)or die("Impossible d'ouvrir la base de donnee $base");
 
$reponse = mysql_query("SELECT * FROM jos_menu"); // Requête SQL
 
 
// On fait une boucle pour lister tout ce que contient la table :
 
while ($donnees = mysql_fetch_array($reponse) )
{
?>
 
<p>
<strong>Nom du menu</strong> : <?php echo $donnees['name']; ?><br />
</p>
 
<?
}
mysql_close(); // Déconnexion de MySQL
?>
Vous avez une idée s'il vous plait?? merci d'avance car je suis vraiment bloqué.[/php]
Modifié en dernier par speccy666 le 03 janv. 2008, 16:52, modifié 1 fois.

Eléphanteau du PHP | 27 Messages

02 janv. 2008, 22:38

c'est quoi exactement le message d'erreur affiché ?

Eléphant du PHP | 58 Messages

02 janv. 2008, 22:57

Ben en fait je n'ai aucun message d'erreur... mon texte html apparait mais les champs censés être complétés par les variable issues de la base sont vides.

Va comprendre Charles? une petite piste?? merci.

Jean Marc

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphant du PHP | 271 Messages

02 janv. 2008, 23:34

Essaye en ouvrant tes short_open_tags comme ça :
<?PHP ........?>
Patience et obstination sont des qualités !

ViPHP
ViPHP | 1996 Messages

02 janv. 2008, 23:39

Essaye cela :
<?
$host="http://sql.free.fr";
$user="speccy666";
$pass="xxxxxxx"; // vrai mot de passe vérifié évidemment en se connectant manuellement à la base
$base="speccy666";
mysql_connect($host,$user,$pass); // Connexion à MySQL
mysql_select_db($base)or die("Impossible d'ouvrir la base de donnee $base");
 
$reponse = mysql_query("SELECT `name` FROM jos_menu LIMIT 30"); // Requête SQL
 
 
// On fait une boucle pour lister tout ce que contient la table :
 
while ($donnees = mysql_fetch_array($reponse) )
{
?>
 
<p>
<strong>Nom du menu</strong> : <?php echo $donnees['name']; ?><br />
</p>
 
<?
}
mysql_close(); // Déconnexion de MySQL
?> 
Si ca marche tu as trop de données pour FF et ca mouline. Aussi tu es obligé de demander à PHP de sortir les infos quantité par quantité (ici 30). Je te déconseille aussi la notation * pour SELECT * si tu as beaucoup de colonnes ca prends beaucoup de temps. Sélectionne les colonnes qui vont te servir. Comme j'ai vu que tu n'affichais que la colonne name je n'ai demandé que name
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Mammouth du PHP | 1885 Messages

03 janv. 2008, 00:18

Je ne comprends pas l'utilisation de http:// dans le nom de ton host MySQL. Il faut utiliser "sql.free.fr" et non "http://sql.free.fr".

Note: Je crois que free.fr refuse les connections externes.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

ViPHP
ViPHP | 1996 Messages

03 janv. 2008, 00:38

Je ne comprends pas l'utilisation de http:// dans le nom de ton host MySQL. Il faut utiliser "sql.free.fr" et non "http://sql.free.fr".

Note: Je crois que free.fr refuse les connections externes.
PAs bête j'avais pas vu.... :oops:
Bon il est temps d'aller faire dodo.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 58 Messages

03 janv. 2008, 15:14

Merci à vous... je vais essayé de virer HTTP mais je l'avais déjà fait avant je crois.

Je vais essayé mais en local ; y a t il un moyen de s'assurer qu'on est connecté à la base sans avoir à aller chercher un enregistrement??

Cela me permettrait déjà de viérifier la connection...

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

ViPHP
ViPHP | 2144 Messages

03 janv. 2008, 15:20

Toutes les operations sur le serveur peuvent être testées, que ce soit la connexion, la sélection d'une base de donnée, etc, avec un or die():
par exemple:
mysql_connect(....) or die(mysql_error());

Eléphant du PHP | 58 Messages

03 janv. 2008, 16:01

En fait, mon code PHP n'était pas interprété.... :oops:

Alors après de nombreuses recherches , voilà 3 erreurs de débutants qui vont peut être aider d'autres personnes :

1) Pour lancer du code PHP (même avec les balises <?php....>), il faut placer son code dans un fichier php et pas Html....évident dirons certains! lol! ......donc plutot essai.php que essai.html

2) En utilisant Wamp, il faut lancer ses fichiers avec la console Wamp ou taper Localhost puis le nom de fichier dans le navigateur, sinon le code PHP du fichier n'est pas interprété.

3) On ne peut se connecter à une base de données FREE (ou d'autres hébergeurs bien souvent) depuis son ordinateur local; on peut bien sur y accéder localement avec sql.free.fr et en tapant son login mais on ne pourra s'y connecter avec un script PHP lancé sur son PC; FREE l'interdit par sécurité...

Il faut donc envoyé son fichier ESSAI.PHP sur son site avec son FTP favori et ensuite le lancer à partir du site FREE... le code PHP peut alors accéder à la base de donnée du même site.

Merci à tous et à Bientôt. :oops: