Posez votre question Signaler

SQL/PHP Problème mysql_fetch_array() [Résolu]

jeff - Dernière réponse le 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 ;-)
Lire la suite 

SQL/PHP Problème mysql_fetch_array() »

2 réponses
Réponse
+1
moins plus
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
jeff - 17 avril 2008 à 09:21
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
Ajouter un commentaire
Ce document intitulé « SQL/PHP Problème mysql_fetch_array() » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?