g-pers
-
Modifié par g-pers le 16/08/2013 à 17:21
cod57
Messages postés1653Date d'inscriptiondimanche 7 septembre 2008StatutMembreDernière intervention11 septembre 2013
-
20 août 2013 à 15:35
Bonjour,
j'ai fais ce code pour l'interet d'afficher les 4 derniere personnes inscrit sur mon site .
j'ai une base de données mysql avec un auto-increment qui est id
mais ça ne marche pas , ça m donne ce message d'erreur
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in 'localhost'line 32
-----
voici mon code php
BBFUNK01
Messages postés1310Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention20 juin 20146 19 août 2013 à 19:38
Hello,
Alors avant toute chose je crois qu'il est nécessaire de rappeler qu'il est beaucoup mieux, depuis déjà quelques temps tout de même, de se connecter à une base de données via PDO.
Ensuite j'ajouterai que l'utilisation des requêtes préparées, via PDO bien entendu, c'est top.
Donc voici comment tu peux récupérer les 4 derniers enregistrements des derniers membres inscrits sur ton site... Via PDO :
$req = $pdo->prepare("SELECT * FROM insc ORDER BY id DESC LIMIT 4");
$req->execute();
while($d = $req->fetch()){
$id = $d['id'];
...etc.
}
Voici la classe que j'utilise pour me connecter à mes bases de données via PDO, et ce en précisant une récupération des données en UTF8 (induisant donc un encodage en UTF8 pour ta base de données) :
class PDO2 extends PDO {
private static $_instance;
public function __construct( ) {
}
public static function getInstance() {
if (!isset(self::$_instance)) {
try {
self::$_instance = new PDO(SQL_DSN, SQL_USERNAME, SQL_PASSWORD, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
} catch (PDOException $e) {
echo $e;
}
}
return self::$_instance;
}
}
Pour ce qui est de renseigner les identifiants de connexion à la base tu procèdes ainsi (dans ton fichier config.php chargé en amont par exemple) :
Et pour la connexion (toujours en amont, par exemple juste après la définition des identifiants de connexion à ta BDD) :
$pdo = PDO2::getInstance();
Après tu es pénard : tu n'as plus qu'à effectuer tes requêtes tel que je te l'ai montré tout en haut, sans avoir à te soucier de lancer la connexion à la base.