Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/04/2006, 20h30   #1
Futur Membre du Club
 
Inscription : mars 2005
Messages : 41
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations forums :
Inscription : mars 2005
Messages : 41
Points : 17
Points : 17
Par défaut erreur inconnu mysql_fetch_row(): supplied argument

Salut
je travail sur win 2000 sevice pack 4 avec easy php1.8.0.1
j'ai un probleme dont je ne comprend pas la source.
quand j'utilse la fonction dans ce code elle fonctionne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<html>
 <head>
 <title>Liens</title>
 </head>
<body>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<th>Nom du site</th>
<th>URL</th>
</tr>
 
<?php
function executeRequeteselect($sql,$conn){
if ($result=mysql_query($sql,$conn)){return $result;} 
else {print (mysql_error());echo "<br>erreur mysql";}
}
// Déclaration des paramètres de connexion
$host = "localhost";  
// Généralement la machine est localhost
// c'est-a-dire la machine sur laquelle le script est hébergé
$user = "root";
$bdd = "extrabit";
$passwd  = "";
// Connexion au serveur
$conx=mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
// Creation et envoi de la requete
$query = "select * from users order by login_user";
$result = executeRequeteselect($query,$conx);//mysql_query($query);
// Recuperation des resultats
while($row = mysql_fetch_row($result)){
$Nom = $row[0];
$Url = $row[1];
echo "<tr>\n
<td><a href=\"$Url\">$Nom</a></td>\n
<td>$Url</td>\n
</tr>\n";
}
// Deconnexion de la base de donnees
mysql_close();
?>
</tr>
</table>
</body>
</html>
mais quand je l'utilise a partir de la classe Connection :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php 
class Connexion
{
var $conn;
////////////////////////////////////////geters et seters///////////////////////////////////
function getConnection ()
  {
  return $this->conn;
 }
function SetConnection($connf){
   $this->conn=$connf;
}
function Connexion(){}
/////////////////////////////////////////////Connection//////////////////////////////////////////
function connecte(){
// connecte ("root","") à la base mysql $mysql
// rend l'id de la connexion ainsi qu'un code d'erreur
$connf=mysql_connect("localhost","root","");
if ($connf){  $this->conn=$connf; echo $connf;} 
else echo"Erreur lors de la connexion à la base de donées sous l'identité ($mysql,root,))";
}//connecte
//////////////////////////////////////////deconnection//////////////////////////////////////
function deconnecte(){
// ferme la connexion mysql identifiée par $connexion
// rend un code d'erreur
if (mysql_close($this->conn)) return "";
else return $mysql_error;
}//ferme
////////////////////exection de la requette insert////////////////////////////
function exécuteRequêteinsert($sql){
if ($res=mysql_db_query("extrabit",$sql,$this->conn)){
return true;
}
else { return false;}
}
//////////////////////exection des requette de type select//////////////////
function executeRequeteselect($sql){
if ($result=mysql_query($sql,$this->conn)){return $result;} 
else {print (mysql_error());echo "<br>erreur mysql";}
}
//fonction de test d'existance
function existe_users($colone,$identifiant,$conn,$table){
$result = mysql_query("SELECT $colone FROM $table WHERE $colone = $identifiant",$conn);
$num_rows=mysql_num_rows($result);
if($num_rows==0){
mysql_free_result($result); return false;
}else{mysql_free_result($result);return true;}
 
}
/*function Connection(){
$passwd  = "";
// Connexion au serveur
$conn=mysql_connect("localhost", "root","") or die("erreur de connexion au serveur");
mysql_select_db("extrabit") or die("erreur de connexion a la base de donnees");
return $conn;
}*/
}
?>
il ne marche pas

le code où je l'utlise est le suivant
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.Style1 {
 font-family: Tahoma;
 font-size: 10px;
}
body {
 margin-left: 10px;
}
-->
</style>
</head>
<body>
<?php
////////////////////////////necessité de recuperer avec $_POST////////////////////////////////////////
ini_set("register_globals","off");
//////////////////////////////////////////inclusion des decaration de pages//////////////////
include "../include/incld.php";
//////////////////////////////////////////inclusion de la page de connection//////////////////
include $page_connexion;
include $page_user;
$conOAff=new Connexion;
$conOAff->connecte();
$idconAff=$conOAff->getConnection();
// Creation et envoi de la requete
$Uaff = new User("","","","","");
$queryAff=$Uaff->liste();
echo "$queryAff";
$resultAff = $conOAff->executeRequeteselect($queryAff);
echo "$resultAff";
// Recuperation des resultats
 ?>
<form name="form1" method="post" action="supprm_users.php">
  <table width="70%" border="1" align="center">
    <tr class="Style1">
      <td colspan="6"><div align="center">L'ensemble des utilisateurs </div></td>
    </tr>
    <tr class="Style1">
      <td colspan="4">&nbsp;</td>
      <td colspan="2"><input name="supprimer_user" type="submit" id="supprimer" value="Supprimer">
      <input name="modifier_user" type="submit" id="modifier" value="Modifier"></td>
    </tr>
    <tr class="Style1">
      <td width="5"><span class="Style1">Selection</span></td>
      <td width="10" class="Style1">Nom de l'utilisateur</td>
      <td width="10" class="Style1">Login</td>
      <td width="10" class="Style1">Mot de passe </td>
      <td width="4" class="Style1">Type        </td>
      <td width="4" class="Style1">Informations sur le client.</td>
    </tr>
    <?php 
$i = 0;
 
 while($row = mysql_fetch_row($resultAff)){ //ligne 66
////////////////////////////signification des rangs du tableau $row//////////////////////////////////////////////
//$login_user = $row[1];
//$pwd_user = $row[2];
//$Nom_user = $row[3];
//$description = $row[4];
//$type_user = $row[5];
      echo "<tr>
   <td>&nbsp;<input type=checkbox name=C$i value=$row[1]> </td>
      <td>&nbsp;$row[3]</td><input name=Nom_user$i type=hidden value=$row[3]>
      <td>&nbsp;$row[1]</td><input name=login_user$i type=hidden value=$row[1]>
      <td>&nbsp;$row[2]</td><input name=pwd_user$i type=hidden value=$row[2]>";
    if($row[5]=="1"){ echo" <td>&nbsp;Administrateur</td> <input name=type_user$i type=hidden value=$row[5]>"; }
    else{ echo" <td>&nbsp;Client</td><input name=type_user$i type=hidden value=$row[5]>";}
      echo"<td >&nbsp;&nbsp;&nbsp;$row[4]</td><input name=description$i type=hidden value=$row[4]>
   </tr>
   ";
   $i++;
  }echo"<input name=nbr_chk type=hidden value=$i>";
 
$conOAff->deconnecte();
 ?>
  </table>
</form>
</body>
</html>
l'erreur qui m'est affiche est la suivante :

Code :
1
2
3
4
 
Aucune base n'a été sélectionnée
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\page_extrabit\user\affich\afficher_users.php on line 66
j'ai mentionne la ligne 66 dans le code dans le code

merci pour vos aides.
Salut
dahan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2006, 22h00   #2
Rédacteur
 
Avatar de Swoög
 
Inscription : janvier 2003
Messages : 6 053
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : janvier 2003
Messages : 6 053
Points : 7 144
Points : 7 144
Envoyer un message via MSN à Swoög Envoyer un message via Skype™ à Swoög
le problème vient de cette ligne je pense :
Code :
1
2
IF ($res=mysql_db_query("extrabit",$sql,$this->conn)){
RETURN true;
il te faudrait renvoyer $res au lieu de true...
__________________
Rédacteur "éclectique" (XML, IRC, Web...)
Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
pensez à la balise [code] (bouton #) et au tag (en bas)
Swoög est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2006, 13h12   #3
Futur Membre du Club
 
Inscription : mars 2005
Messages : 41
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations forums :
Inscription : mars 2005
Messages : 41
Points : 17
Points : 17
Par défaut mauvaise coloration

Salut
déslolé mais j'ai procéde à une mauvaise coloration de la fonction .maintenant j'ai corrigé la coloration .Ainsi vous pouvez voir que executeRequeteselect retourne $result
Code :
1
2
3
4
function executeRequeteselect($sql){
if ($result=mysql_query($sql,$this->conn)){return $result;} 
else {print (mysql_error());echo "<br>erreur mysql";}
}
j'attend votre reponse chères .
Salut
dahan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2006, 08h58   #4
Futur Membre du Club
 
Inscription : mars 2005
Messages : 41
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations forums :
Inscription : mars 2005
Messages : 41
Points : 17
Points : 17
Par défaut résolu

Salut j'ai trouve l'erreur
en effet pour ce connecte a ma base je devait specifier la base de donnée dans la fonction de connection connecte() avec la ligne
Code :
mysql_select_db("extrabit") OR die("erreur de connexion a la base de donnees");
l'ancienne redaction de connecte() etait :
Code :
1
2
3
4
5
6
7
FUNCTION connecte(){
// connecte ("root","") à la base mysql $mysql
// rend l'id de la connexion ainsi qu'un code d'erreur
$connf=mysql_connect("localhost","root","");
if ($connf){  $this->conn=$connf; echo $connf;} 
else echo"Erreur lors de la connexion à la base de donées sous l'identité ($mysql,root,))";
}//connecte
la nouvelle est
Code :
1
2
3
4
5
6
7
8
9
function connecte(){
// connecte ("root","") à la base mysql $mysql
// rend l'id de la connexion ainsi qu'un code d'erreur
$connf=mysql_connect("localhost","root","");
if ($connf){  $this->conn=$connf; 
mysql_select_db("extrabit") or die("erreur de connexion a la base de donnees");
} 
else echo"Erreur lors de la connexion à la base de donées )";
}//connecte
Salut
dahan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h35.


 
 
 
 
Partenaires

Hébergement Web