bonsoir à la communauté PHP,

voilà je travail sur une classe qui utilise des commandes MySql et j'ai un petit problème à l'utilisation.

Voici d'abord mon code pour qui voudra bien m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
 
<?
class MonSql {
	private $bdd;   /* Base de données              */
   	private $host;  /* Hote (localhost en principe) */
   	private $user;  /* Utilisateur                  */
   	private $pass;  /* Mot de passe                 */
	private $nb;
	private $arguments;
	private $resultat;
	private $resultats;
	private $monChamp;
	private $maTable;
 
	public function __construct() {
	   $this->nb = func_num_args();
       $this->arguments = func_get_args();	 
 
	   $this->bdd   = $this->arguments[0];
	   $this->host  = $this->arguments[1];
	   $this->user  = $this->arguments[2];
	   $this->pass  = $this->arguments[3];
	}
 
	public function select($champDeTable, $table) {
		$this->monChamp = $champDeTable;
		$this->maTable = $table;
		// Ici on éclate $nombdreDeChampsDeTables en autant de champs que cette variable en contient
		$nombdreDeChampsDeTables = explode(",", $champDeTable);
 
		/* Connexion et sélection de la base */    
   		$link = mysql_connect($this->host, $this->user, $this->pass) or die("Echec de la connection... Appelez l'administrateur de la base...");    
		mysql_select_db($this->bdd) or die("Echec à la selection de la base... Appelez l'administrateur de la base...");    
		$query = "SELECT " . $champDeTable . " FROM " . $table;
		$this->resultat = mysql_query($query) or die("la requete a échoué ... ");
 
		$result = $this->resultat;  
 
		// On conserve au cas où ...
		//
 
 
		// On teste ici si $nombdreDeChampsDeTables contient un seul champ et pas *
		// en fait on fait un select sur un seul champ
		//
		if ((sizeof($nombdreDeChampsDeTables) == 1) && ($nombdreDeChampsDeTables[0] != "*")) {
			/* Recupération de la liste dans une variable */   
			$i = 0;
			while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {  
				$i = $i + 1;	   
				foreach ($line as $col_value) {
					$this->resultats[$i-1] = $col_value;
				}
			}
		}
		// Sinon on fait un select multi critère et on va chercher automatiquement le nom
		// des champs et l'information qui est dans le champ
		// 
		else {
			if ($result = mysql_query($query)) {	
				$i = 0;
				$this->resultat = $result;
				echo " !!!!!!!!!!!!!!!!!!!!";		
				while ($line = mysql_fetch_assoc($result)) {  
					$limit = mysql_num_fields($result);
					$i++;
					for ($j = 0; $j < $limit; $j++) { 
						$name = mysql_field_name($result, $j);
						$this->resultats[$i-1] = $this->resultats[$i-1] . $line[$name];	
					}
				}
			}			
		}
 
		/* Libération des résultats */    
		mysql_free_result($result);    
 
		/* Fermeture de la connexion */    
		mysql_close($link);	
	}
 
	public function donneResultat() {	
		return $this->resultats;			
	}	
 
	public function affiche() {
		?>
		<table ALIGN="center" border="1"cellspacing="2" cellpadding="2">
      	<?
		while ($line = mysql_fetch_assoc($this->resultat)) {  
	   		echo "<tr>";
			for ($j = 1; $j <= mysql_field_name($this->resultat); $j++) {
		    	$k++;
				$name = mysql_field_name($this->resultat, $j);
				echo "<td align=LEFT>";
				echo $line[$name];
				echo "</td>";
			}
			echo "</tr>";
	   	}
	   	?>
       	</table>
		<?	
	}	
}	
 
?>

Ensuite son utilisation :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
$requete1 = new MonSql("AnciensDiplomes","localhost","root","");
$requete1->select("*","etudiant");
$requete1->affiche();

Enfin l message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
!!!!!!!!!!!!!!!!!!!! 
Warning: mysql_fetch_assoc(): 7 is not a valid MySQL result resource in c:\wamp\www\Z Test6\MonSql.php on line 89
Si quelqu'un peut me donner son avis. En fait après avoir
fait $requete1->select("*","etudiant") je m'attends à pouvoir utiliser
correctement mysql_field_name($this->resultat).

Merci de vos lumières.