Page 1 sur 3
probleme avec mysql_query
Posté : 10 mai 2005, 16:20
par pec
Bonjour a tous!
je debute la programmation en PHP et j'ai un petit probème. voila mon code:
<?
// Connexion
$dsn = "toto";
$user = "titi";
$passwd = "tutu";
$connexion = odbc_connect($dsn,$user,$passwd,SQL_CUR_USE_DRIVER);
echo '<select size=1 name="cat">'."\n";
echo '<option value="-1">Choisir un résultat<option>'."\n";
// Récupération des informations triées par ordre alphabétique
$sql = "SELECT nom_test FROM test";
$ReqLog = mysql_query($sql, $connexion);
while ($resultat = mysql_fetch_row($ReqLog)) {
echo '<option value="'.$resultat[0].'">'.$resultat[1];
echo '</option>'."\n";
}
echo '</select>'."\n";
?>
Mais j'ai deux messages d'erreur:
Warning: mysql_query(): supplied resource is not a valid MySQL-Link resource in c:\program files\easyphp1-8\www\essai.php on line 35
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\essai.php on line 37
Est ce que quelqu'un peut me dire ce qu'il ne va pas?
Merci
Posté : 10 mai 2005, 16:23
par slipndi
Bonjour
c'est ta méthode de connection qui est pas bonne :
$connexion=mysql_connect($dsn,$user,$passwd);
$conn=mysq_select_db(nombdd);
// pas $connexion = odbc_connect($dsn,$user,$passwd,SQL_CUR_USE_DRIVER);
Posté : 10 mai 2005, 16:25
par pec
ok
j'ai essayer cette methode de connexion mais j'ai des pb d'acces
je vais voir ce que je peux faire pour les droit d'acces.
merci
Posté : 10 mai 2005, 17:47
par pec
est ce que quelqu'un peut m'eclairer sur la configuration de easyphp.
je developpe sur un pc windows et ma base de données est sur un autre pc sous environnement unix.
merci de me venir en aide car j'ai le message d'erreur suivant:
Warning: mysql_connect(): Access denied for user: '
[email protected](Using password: YES) in c:\program files\easyphp1-8\www\essai.php on line 13.
merci
Posté : 10 mai 2005, 17:54
par rami
Est tu sur des identifiants pour te connecter à la base? Le moteur de base de données est bien Mysql?
Dans ton mysql_connect(), il faut que tu mettes l'ip du pc linux, puis ton nom d'utilisateur qui a accès à la base et son mot de passe.

Posté : 10 mai 2005, 17:54
par slipndi
enfaite si tu ve que ca marche en local il te suffit de taper a la place de ton pseudo et mdp et adresse :
"root" "" "localhost"
et normalement tu auras pas de soucis sinon ben pour configurer cela dans easyphp faut allez dans le menu administration puis : gestion bdd,
cliquer sur privilège, tu modifie le présent alias : root et " " et tu remplace par ce que tu veux
dès lors que tu aura valider tu ne pourra plus acceder à phpmyadmin
mais pas de panique
tu va dans le dossier ou tu as installer phpmyadmin
tu edite le fichier config_inc.php et tu modifie les lignes 84 et 85
mais jte conseillerai d'eviter les modif de se type,)
Posté : 11 mai 2005, 09:36
par pec
ca c'est la modif de config pour dire que ma base de données est sur un autre pc?
est ce que c'est poosible de dire que la base est sur tel pc et de travailler en local?
Posté : 11 mai 2005, 09:39
par slipndi
ah ca ben si tu ve te connecter sur une base en ligne
tu remplace le localhost par l'adresse ip de la machine hôte de la bdd et le pseudo et mdp que tu as configurer en ligne
Posté : 11 mai 2005, 10:12
par pec
merci bcp !!
mais j'ai un autre pb
tjs dans le meme bout de code
$sql = "SELECT nom_test FROM test";
$ReqLog = mysql_query($sql, $connexion);
while ($resultat = mysql_fetch_row($ReqLog)) {
echo '<option value="'.$resultat[0].'">'.$resultat[1];
echo '</option>'."\n";
}
echo '</select>'."\n";
mysql_close($connexion);
?>
message d'erreur: Warning: mysql_fetch_row(): supplied argument is not valid mysql result resource.
merci de ton aide
Posté : 11 mai 2005, 10:15
par slipndi
ben moi je serai toi , je virerai le $connection dans le mysql_fetch_row();
ca a déjà fait bugger mes scripts chez moi donc c'est peu être ca? tu à plus que ce message d'erreur ? sino vérifie que tu a bien les donnée dans la bdd etC. Verifie tes noms de table aussi
Posté : 11 mai 2005, 10:21
par pec
ouais j'ai plus que ce message d'erreur.
pour ce qui est des données elles sont bien presentent dans la base et j'ai aussi verifier les nom des table ainsi que les champs.
tu as une idée pour remplasser mysql_fetch_row()?
merci
Posté : 11 mai 2005, 10:27
par slipndi
bon on place un test sur la requete
après ta ligne de requête place ce code et dis moi ce qu'il te dit :
$sql = "SELECT nom_test FROM test";
$ReqLog = mysql_query($sql, $connexion);
if(!ReqLog)
{
echo("Beuu ca marche pas ");
}
else
{
echo("Yeah la requête est juste");
}
Posté : 11 mai 2005, 10:31
par pec
voila le resultat:
Notice: Use of undefined constant ReqLog - assumed 'ReqLog' in c:\program files\easyphp1-8\www\essai.php on line 22
Yeah la requête est juste
alors c'est quoi?
en faite il y avait une faute de frappe dans le code
voila ce que j'ai:
Beuu ca marche pas
Posté : 11 mai 2005, 10:34
par slipndi
rah jte copie un code faux je suis trop nul lol
enfaite j'ai oublier un $
donc corrige le code ke je t'ai filer rajoute juste un $ devant ReqLog ce qui donnera donc :
if(!$ReqLog)...
désolé

Posté : 11 mai 2005, 10:36
par pec
je l'ai fait avant que tu post. regarde mon dernier message
j'ai ca maintenant:
Beuu ca marche pas