|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
mailer WRInaute occasionnel

Inscrit le: 26 Juin 2005 Messages: 158
|
Posté le : Jeu Fév 23, 2006 22:25 Sujet du message: problème avec ma classe |
|
|
bonsoir
j'essais de créer une classe me permetant de pouvoir par la suite l'adapter à plusieurs cas!
Voilà
| Code: |
unction requete ($requete)
{
// Exécution de la requête
$result = mysql_query ($requete, $this->connect);
// Vérification de la requête
if (!$result)
{
// Affichage du message d'erreur
echo "Erreur : Impossible d'effectuer la requête au serveur.";
exit;
}
else
{
// Initialisation de l'attribut de requête
$this->requete = $result;
}
} |
En inserant ce fichier mis a part j'aimerais donc pouvoir aller plus loin dans la requete mysql.
| Code: |
$result = $database->requete ("SELECT COUNT(*) AS ip_exist FROM staterror404 WHERE ip='" . $ip . "' AND urlRef='" . $http_referer . "' ");
$count = $database->mysql_fetch_array($result); |
j'aimerais exploiter le résultat que j'ai dans $result mais j'ai droit a une erreur :
Fatal error: Call to undefined function: mysql_fetch_array() in c:\easyphp1-7\testphp\testpao\index.php on line 36 |
|
| |
|
 |
petit-ourson WRInaute passionné

Inscrit le: 31 Mai 2004 Messages: 790 Localisation: Paris
|
Posté le : Jeu Fév 23, 2006 22:58 Sujet du message: problème avec ma classe |
|
|
La méthode mysql_fetch_array n'existe pas sur $database.
$count = mysql_fetch_array($database->requete);
Cela devrait fonctionner tout simplement.
Ta méthode requete() ne retourne rien, il n'y a pas de "return". |
|
| |
|
 |
mailer WRInaute occasionnel

Inscrit le: 26 Juin 2005 Messages: 158
|
Posté le : Jeu Fév 23, 2006 23:31 Sujet du message: problème avec ma classe |
|
|
je dois mettre un return dans requete ?
peux tu me montrer un exemple ? |
|
| |
|
 |
thierry8 WRInaute accro

Inscrit le: 11 Juil 2005 Messages: 3252
|
Posté le : Ven Fév 24, 2006 0:11 Sujet du message: problème avec ma classe |
|
|
| Code: |
function requete ($requete)
{
// Exécution de la requête
$result = @mysql_query ($requete, $this->connect);
// Vérification de la requête
if (!$result)
{
// Affichage du message d'erreur
exit("Erreur : Impossible d'effectuer la requête au serveur.");
}
else
{
// Initialisation de l'attribut de requête
return $this->requete = $result;
}
} |
Mais je pense que sauvegade le résultat est inutile.
Je fais allusion à cela: $this->requete = $result; |
|
| |
|
 |
mailer WRInaute occasionnel

Inscrit le: 26 Juin 2005 Messages: 158
|
Posté le : Ven Fév 24, 2006 10:00 Sujet du message: problème avec ma classe |
|
|
alors j'ai ajouté le return dans la méthode function requete ($requete) comme indiqué!
Mais en executant la page, rien ne s'affiche, je comprends pas:
je devrais avoir le résulat de ma requete count qui devrait s'afficher... |
|
| |
|
 |
thierry8 WRInaute accro

Inscrit le: 11 Juil 2005 Messages: 3252
|
Posté le : Ven Fév 24, 2006 10:15 Sujet du message: problème avec ma classe |
|
|
| Code: |
$result = $database->requete ("SELECT COUNT(*) AS ip_exist FROM staterror404 WHERE ip='" . $ip . "' AND urlRef='" . $http_referer . "' ");
$count = $database->mysql_fetch_array($result); |
Remplace par:
| Code: |
$result = $database->requete ("SELECT COUNT(*) AS ip_exist FROM staterror404 WHERE ip='" . $ip . "' AND urlRef='" . $http_referer . "' ");
$val_rq = $database->mysql_fetch_array($result);
$count = $val_rq['ip_exist'];
|
Ceci fonctionnera à condition que ta requête soit bonne.
Tu devrais acheter un bouquoin ou apprendre sur le net.
Sans base solide tu n'arrivera jamais à rien, et il n'y aura
pas toujours quelqu'un pour tout te faire.
EDIT:
Je suppose que $database->mysql_fetch_array($result);, est une fonction que tu à créé dans ta class. Sinon il est certain que ça ne fonctionnera pas.
Laisse tombé les class pour le moment et aprend la programmantion en ligne. Ce sera déjà un bon début. |
|
| |
|
 |
mailer WRInaute occasionnel

Inscrit le: 26 Juin 2005 Messages: 158
|
Posté le : Ven Fév 24, 2006 20:18 Sujet du message: problème avec ma classe |
|
|
en fait j'ai une classe mere sgbd et une classe fille mysqlsgbd
| Code: |
class MySQL extends SGBD
{
// Méthode connect()
function connect ()
{
// Connection à MySQL
$connect = mysql_pconnect ($this->SGBD_host, $this->SGBD_login, $this->SGBD_password);
// Vérification de la connection
if (!$connect)
{
// Affichage du message d'erreur
echo "Erreur : Connection à MySQL impossible.";
exit;
}
// Connection à la base de données
if (!mysql_select_db ($this->SGBD_base, $connect))
{
// Affichage du message d'erreur
echo "Erreur : Connection à la base de données impossible.";
exit;
}
// Initialisation de l'attribut de connection
$this->connect = $connect;
}
// Méthode requete()
function requete ($requete)
{
// Exécution de la requête
$result = mysql_query ($requete, $this->connect);
// Vérification de la requête
if (!$result)
{
// Affichage du message d'erreur
echo "Erreur : Impossible d'effectuer la requête au serveur.";
exit;
}
else
{
// Initialisation de l'attribut de requête
$this->requete = $result;
}
}
// Méthode deconnect()
function deconnect ()
{
// Déconnection de la base de données
mysql_close ($this->connect);
}
}
?>
|
Voilà mais en faisant comme ceci ensuite ;
| Code: |
$SQL = "MySQL";
$database = new $SQL('root', '', 'localhost', 'test');
$database->connect();
$result = $database->requete ("SELECT COUNT(*) AS ip_exist FROM staterror404 WHERE ip='" . $ip . "' AND urlRef='" . $http_referer . "' ");
$count = mysql_fetch_array($database->requete);
echo $count['ip_exist']; |
çà ne marche pas, rien ne s'affiche.
Sinon je m'interesse à la pao, je m'y connais assez en php pour faire le pas, malgrès que ce en soit pas si facile ;( |
|
| |
|
 |
thierry8 WRInaute accro

Inscrit le: 11 Juil 2005 Messages: 3252
|
Posté le : Ven Fév 24, 2006 21:14 Sujet du message: problème avec ma classe |
|
|
Dans ta table je ne vois pas les variables déclarées...
Et la fonction "requete" n'a pas été modifiée par le code indiqué, autrement dit pas de return. |
|
| |
|
 |
mailer WRInaute occasionnel

Inscrit le: 26 Juin 2005 Messages: 158
|
Posté le : Ven Fév 24, 2006 21:50 Sujet du message: problème avec ma classe |
|
|
voilà le code que j'ai sur ma page de test =W test.php
| Code: |
include ("SGBD.class.php");
/* Initialisation de la variable du SGBD correspondant */
$SQL = "MySQL";
// Inclusion de la classe fille du SGBD correspondant
include ($SQL.".SGBD.class.php");
$database = new $SQL('root', '', 'localhost', 'test');
$ip = $_SERVER["REMOTE_ADDR"];
$http_referer = "http://127.0.0.1";
$http_request = $_SERVER["REQUEST_URI"];
$timestamp = time();
// Connection à la base de données
$database->connect();
$result = $database->requete ("SELECT COUNT(*) AS ip_exist FROM staterror404 WHERE ip='" . $ip . "' AND urlRef='" . $http_referer . "' ");
$count = mysql_fetch_array($database->requete);
echo $ip.'<br />';
echo $http_referer;
echo $count['ip_exist'];
// Déconnection de la base de données
$database->deconnect();
|
J'ai essayé de mettre un return mais çà change rien en fait |
|
| |
|
 |
| |
|
|