avant tout je cherche a reprendre une class sql existante j'ai envie d'en faire une qui sera bien adaptée a mes besoin, pour l'instant je démarre doucement et tente de comprendre les principes de la POO.
Pour ca j'ai d'abord creer une classe sql simple :
// Classe de connection a la base de donnée
// fonctions de connection et deconnection
class dbconnect {
protected $config = array(
'host' => 'localhost',
'user' => 'root',
'pass' => 'enimatek',
'dbname' => 'test_admin'
);
// Fonction : constructeur
function __construct() {
mysql_connect($this->config['host'],
$this->config['user'],
$this->config['pass']);
mysql_select_db($this->config['dbname']);
}
// Fonction : destructeur
function __destruct() {
mysql_close();
}
}
// Classe des requetes sql
class dbquery extends dbconnect {
// Fonction requete select sur la bdd
public function aquery($select,$table,$join,$where) {
$req = "SELECT $select FROM $table $join $where";
if(!mysql_query($req)){
$this->query_error($req);
}else{
$new_req = mysql_query($req);
return mysql_fetch_array($new_req);
}
}
// Retourner l'erreur sql
public function query_error($req) {
die( "Erreur sql n°".mysql_errno().", ".mysql_error()." <br /><br /> ".$req) ;
}
}
ensuite j'appel cette class dans un tableau HTML pour ajouter toute les entrées de ma table : <?
include("../_includes/php/classes/dbclass.php");
$connect = new dbquery();
while($arrayMenu = $connect->aquery('*','menu_titre','',''))
{
?>
<tr>
<td valign="top" class="menutitre"><? echo $arrayMenu['Titre']; ?><br>
<?
while($arraySmenu = $connect->aquery('*','menu_element','',"WHERE Id_titre = '".$arrayMenu['Id']."' "))
{
?>
<a href="<? echo $arraySmenu['Url']; ?>" target="principal" class="menu"><? echo $arraySmenu['Nom']; ?></a><br />
<?
}
?>
</td>
</tr>
<?
}
?>
mais j'ai l'impression qu'il aime pas beaucoup la boucle while avec l'utilisation de la classe il me fait une boucle infinie du premier resultat de la requete. en mettant tout sans poo il me retourne bien le bon résultat et je bloque un peu.
une idée ?