requete sql dans une fonction utilisateur

chocome
Invité n'ayant pas de compte PHPfrance

22 déc. 2011, 01:12

Bonsoir à tous,

j'espère ne pas faire de doublon avec ma question.

Dans un tableau html, je dois afficher le contenu d'une requête (pour un emploi du temps). La requête fonctionne bien dans phpmyadmin, et quand on l'utilise seule dans la case souhaitée.
Seulement, je voudrais l'intégrer à une fonction pour pouvoir l'utiliser plusieurs fois et ne pas la recommencer sans cesse. Et c'est là que j'ai un problème...

Voici mon script :
     function afficher($jour,$heure){
				$user = 'root';
				$host = 'localhost';
				$password = '';
				$database = 'edt';
				$cxn = mysql_connect($host, $user, $password, $database) 
						or die ("Connexion au serveur impossible") ;
				$requete = 'SELECT  cours.nomcours, enseignants.nomenseignant, salles.nomcampus, salles.numerosalle
							FROM etudiants, cours, enseignants, salles
							WHERE etudiants.idetud = "4"
							AND etudiants.nomfiliere = cours.nomfiliere
							AND cours.jour = $jour
							AND cours.creneauhoraire = $heure
							AND cours.idens = enseignants.idens
							AND cours.idsalle = salles.idsalle
							LIMIT 0 , 40' ;
				$resultat = mysql_query($cxn,$requete)
							or die ("Exécution de la requête impossible") ;
				return mysql_fetch_assoc($resultat) ;
			}
et voici le message d'erreur :
Warning: mysql_query() expects parameter 1 to be string, resource given in C:\Program Files\EasyPHP-5.3.8.0\www\Projet sans connex\emploidutemps.php on line 40
Exécution de la requête impossible

mais je n'arrive pas à régler le problème... quelqu'un peut-il m'aider s'il vous plaît ?? (ps: je tiens à préciser que je ne suis pas une bête en info)

ViPHP
AB
ViPHP | 5818 Messages

22 déc. 2011, 02:53

$resultat = mysql_query($requete,$cxn) or die ("Exécution de la requête impossible");
$cxn est une ressource (comme l'indique le message d'erreur) : c'est ta connexion. Et comme l'indique aussi le manuel http://fr2.php.net/mysql_query mysql_query attend une chaine de caractère (ta requête) comme premier argument; le second argument optionnel étant la ressource de connexion.

chocome
Invité n'ayant pas de compte PHPfrance

22 déc. 2011, 09:10

Merci !

Effectivement, j'ai inversé, et ça ne me met plus le message d'erreur. En revanche, ça me marque toujours "Exécution de la requête impossible", sais-tu de quoi ça peut venir ? puisque je l'ai testée avant ma requête...

ViPHP
ViPHP | 2577 Messages

22 déc. 2011, 16:26

WHERE etudiants.idetud = "4" => WHERE etudiants.idetud = 4
si idetud est un entier. En plus , il doit falloir utiliser des ' pas des " dans les requetes SQL.

Dans le die, ajoutes mysql_error() pour connaitre l'erreur.

chocome
Invité n'ayant pas de compte PHPfrance

24 déc. 2011, 16:27

merci beaucoup !
effectivement, erreur bête, pas de " dans le langage sql
et j'ai mis le mysql_error dans mon die, cette fois , il me dit qu'aucune base n'a été sélectionnée, alors que la connexion à la base me semble correcte... ce doit être une petite erreur mais je ne la trouve pas...

chocome
Invité n'ayant pas de compte PHPfrance

24 déc. 2011, 16:30

et au passage, joyeux Noël à tous :D

ViPHP
ViPHP | 2287 Messages

24 déc. 2011, 17:37

merci beaucoup !
effectivement, erreur bête, pas de " dans le langage sql
et j'ai mis le mysql_error dans mon die, cette fois , il me dit qu'aucune base n'a été sélectionnée, alors que la connexion à la base me semble correcte... ce doit être une petite erreur mais je ne la trouve pas...
La connexion au serveur est correcte, mais la base par contre, exactement comme il te le dit... ;-)

Le quatrième paramètre de ton mysql_connect n'est pas bon.

http://fr2.php.net/manual/fr/function.mysql-connect.php

La fonction qui manque à ton code est celle-ci :

http://fr2.php.net/manual/fr/function.m ... ect-db.php

Joyeux Noël à toi également ;-)
if(!@work()){ Nespresso(); } else { what(); }
______________________________