SQL/PHP Problème mysql_fetch_array()

Résolu/Fermé
jeff - 16 avril 2008 à 22:08
 jeff - 17 avril 2008 à 09:21
Bonjour,

voilà j'ai un souci, j'ai créé une page PHP me servant de ma base de donnée en localhost. J'ai donc hébergé chez free ma base de donnée en l'exportant vers l'hébergeur.
Tout fonctionnait mais en mettant mon fichier sur le web et en tentant de le consulter, il m'affiche l'erreur suivante :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/140/sda/8/0/jeffletourdi/Nouveau/Equipes/FCAC.php on line 301


Voici le script étant dans les environs de la ligne 301 :

<?php
mysql_connect("sql.free.fr", "***", "***"); // Connexion à MySQL
mysql_select_db("***"); // Sélection de la base coursphp

$reponse = mysql_query("SELECT * FROM Participants,defifoot WHERE Participants.situation_defifoot=defifoot.intitulechamp AND Participants.nom_manager='carternets' "); // Requête SQL
while ($donnees = mysql_fetch_array($reponse) )
{
?>


Merci de vos réponses ;-)
A voir également:

1 réponse

R4f Messages postés 441 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 5 mai 2008 62
17 avril 2008 à 01:16
Salut,


Il y a plusieurs choses :
1- il faut toujours vérifier les valeurs de retour des fonctions, genre mysql_connect, mysql_select_db, mysql_query

Exemple de code :
# CONNEXION AU SERVEUR MySQL 

$dbh = @mysql_connect('****', '****', '****');
if ($dbh === FALSE) {
        echo "Erreur de connexion : ".mysql_error();
        exit();
}

# SELECTION DE LA BASE DE DONNÉES
if (@mysql_select_db('*****', $dbh) === FALSE) {
        echo "Erreur de sélection de base : ".mysql_error();
        exit();
}

$sql="SELECT id, headline, postbody, posted_on FROM blog ORDER BY posted_on ASC";


# MAINTENANT, EXÉCUTONS LA REQUÈTE 
$sth = mysql_query($sql, $dbh);
if ($sth === FALSE) {
        echo "Erreur de requête ($sql) : ".mysql_error();
        exit();
}




2- N'oublie pas que sous Windows, les noms des tables MySQL sont insensibles à la casse.

Par exemple si tu as une table nommée Films, tu peux faire une requête genre SELECT * FROM films et ça ne pose pas de problème pour Windows car il va chercher les tables dans des fichiers. Par contre, sous Linux (chez Free, c'est du Linux) c'est sensible à la casse et la requête que je t'ai mise ne marche plus. Par contre, ce qui marchera c'est SELECT * FROM Films.

J'espère que ça t'aidera.

Raph
1
Bonjour à toi Raph,

un grand merci pour ta réponse détaillée et pourvue de bon sens. elle m'a grandement aidée. Ce n'était pas un problème de nom des relations, c'est vrai que ça on nous l'a toujours dit et généralement, je fais attention.
Mais merci pour l'information, je ne savais pas qu'il y avait une différence entre linux et windows (même si cela ne m'étonne guère davantage lol) .
Justement, je me posais entre autre la question en voyant que beaucoup utilisaient des minuscules alors que leurs tables étaient en Majuscules..

Je te remercie donc de ton aide, et je vais ancrer ça dans ma tête afin de ne plus avoir à reposer cette question et d'avancer dans mon apprentissage.

Amicalement, jeff
0