Résolu Comment gérer une base de données en Php?

  • Auteur de la discussion Princesse_des_iles
  • Date de début

Princesse_des_iles

Habitué
Bonjour à tous,

Je souhaite pouvoir manipuler une base de données (BDD) en Php ie la modifier, l'alimenter etc...
Il s'agit d'une base de données d'une bibliothèque. On y trouve des livres, des ouvrages etc...

En effet, je suis partie d'une base de données construite avec des requêtes SQL vers une base de données en Php via Easyphp.
Je souhaite dès à présent la manipuler à ma guise ie je souhaite pouvoir y insérer de nouveaux livres à chaque fois qu'un arrivage à lieu.
Je souhaite également pouvoir l'interroger avec des formulaires toujours en Php.

J'ai besoin de vos conseils, connaissances etc... Si vous avez des liens, des blogs, des références bibliographiques à me suggérer ou toutes autres sources d'informations, je suis preneuse.


Merci!
 

VaderFR

Grand Maître
Meilleure réponse
Bonjour,

la base est toujours en SQL. A priori MySQL.
PHP va permettre de requêter la base. le systme est dès lors très simple :

D’abord, il faut se connecter à la base.
Code:
mysql_connect('serveur_bdd','utilisateur_bdd','mot_de_passe_bdd','MYSQL'); // or die ?
mysql_select_db("nom_base");

Ces quelques lignes de code pourront être mises seulement dans un fichier php que l’on va ensuite inclure dans toutes les pages qui en auront besoin.
Code:
include "connect.php";

Puis on construit la requête
exemple :
Code:
$rek_sel="select * from spip_articles where id_rubrique=$id_rubrique_diapo and statut='publie' order by 'date' DESC limit $debut,$par_page "; // order by date DESC

Ici, il faut connaître suffisamment le langage SQL pour créer la requête.
il faut simplement retenir pour l’instant le fait que l’on met une requête texte en langage SQL dans une variable PHP.

On l’exécute

Code:
$res_sel=mysql_query($rek_sel);

et on récupère le résultat

Si le résultat ne peut comporter qu’une seule ligne maximum.

On envoie le résultat brut renvoyé par la précédente commande dans un tableau (d’une seule ligne, de fait), lequel est associatif (chaque colonne est nommée selon les champs choisis dans la clause SELECT de la requête plus haut).
Puis on récupère la valeur du ou des champs ciblés.
Code:
$rek_compt="select count(*) as total from spip_articles where id_rubrique=$id_rubrique_diapo and statut='publie'";
$res_compt=mysql_query($rek_compt);

$row_total=mysql_fetch_array($res_compt,MYSQL_ASSOC);
$total=$row_total["total"];

On prendra soin de tester si la valeur retournée est nulle ou chaîne vide, quand cela risque de se produire (ici, on a fait un comptage des lignes, donc forcément non vide, entre 0 et n).

Si le résultat comporte ou risque de comporter plusieurs lignes :

On envoie le résultat brut renvoyé par la commande précédente dans un tableau, lequel est de type associatif (chaque colonne est nommée selon les champs choisis dans la clause SELECT de la requête plus haut).
Puis on traite ce tableau ligne par ligne par une boucle WHILE (tant que le tableau de résultat renvoie une ligne, traiter la ligne).
Code:
while ($row_sel=mysql_fetch_array($res_sel,MYSQL_ASSOC)){
        $id=$row_sel["id_article"];
        $titre=htmlentities($row_sel["titre"]);
        $texte=htmlentities($row_sel["texte"]);
        ...
        ...
}

Ici, htmlentities(texte) est une fonction PHP qui permet de transformer les caractères spéciaux - qui risquent d’être interprétés en html - par leur code html équivalent.

Enfin, on ferme la connexion à la base.

Code:
mysql_close();

Même si le serveur gère les connexions inactives, c’est plus propre.


Pour ce qui est des détails et du reste, tu trouveras les infos via google, sur divers sites comme (ex site du Zéro) (ou le mien aussi)
 

Princesse_des_iles

Habitué
Merci VaderFr.
J'ai mis du temps à répondre mais il me fallait le temps de me familiariser avec Php et la manipulation des BDD.
Ton message m'aide assez à y voir plus clair.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 132
Messages
6 718 002
Membres
1 586 388
Dernier membre
mery2005
Partager cette page
Haut