Je suis plutôt débutant en progra, tout du moins pour le php et mysql, mais j’ai déjà compris grosso modo le fonctionnement.
Je vous explique ce que je souhaite réaliser:
A chaque ouverture de page je voudrais qu’une variable dans une base de donnée soit incrémentée pour comptabiliser le nombre de lecture.
Pour simplifier les choses, est ce possible de procéder comme ceci:
Je crée une table dans une BDD que j’appelle compteur_lecture.
Je crée dans cette table une centaine de champs que je nome cpt_article1 puis cpt_article2, etc…
Sur chacun de mes articles je voudrais faire ceci:
Mettre du code php qui ouvre le champs et affiche la valeur —> ex: 100 lectures.
Après avoir affiché le contenu de la variable que la variable soit incrémentée automatiquement. En quelques sortes le nombre de lecture n’inclue pas encore la mienne. Elle est inclue dans la BDD, mais pas affichée.
Existe-t-il une solution pour que lorsque la page est chargée elle lise le contenu d’un champs et incrémente automatiquement la valeur de ce champs qui serait affichée au prochain chargement.
Cela serait donc une fonction qui fait que dès qu’on accède à la variable ca l’incrémente une fois qu’on l’a lu.
Moi je trouve ça plus simple sur le principe, après je sais pas si cela est réalisable.
Ensuite lorsqu’on se connecte a une BDD il faut mettre dans le code le nom de la BDD et le mot de passe. Mais ce mot de passe est inclue de le code de la page, ce qui veut dire que tout le monde peut le lire et donc ensuite accéder à ma base, et donc vider tout ce qu’il y a dedans. C’est sur le plan sécurité aussi que je m’inquiète.
Si quelqu’un peut m’expliquer et que l’on voit ensemble comment on peut construire le code ce serait très gentil
Tout d’abord pour ce qui est de la sécurité.
mets tes identifients dans un fichier a par (.php), et après la connexion, unset($password);
Le code php n’est pas visible pour les utiliseurs.
Pour la base de données, au lieu de créer 100 champs (tu vas te fatiguer ), fais en plutot 2
article | lecture
et oui c’est possible
function afficherNbreLecture($article)
{
//Connexion a mysql
$s = “SELECT lecture FROM taTable WHERE article=’”.mysql_real_escape_string($article)."’";
//query, tu affiche le résulats
$s = “UPDATE taTable SET lecture=lecture+1 WHERE article=’”.mysql_real_escape_string($article)."’";
}
J’ai pas tout compris, là je lis le site du zero pour le PHP et BDD peut etre que je comprendrais après.
Toutefois si tu peux m’expliquer la démarche par le fichier php (du même genre que drupal pour la connexion a la base je pense), et pour la façon de stocker et incrémenter la variable lecture. Sachant que je souhaite le faire pour tous mes articles.
Je comptais faire 100 champs pour ne plus en avoir d’autres à faire d’ici quelques temps, et à chaque fois que j’écrivais un nouvel article je faisait pointer vers les champs ou variable suivant.
Je ne sais pas si je suis clair, mais là j’ai un peu de mal. Le C c’es pas exactement comme le PHP:ane:
ben en fait, au lieu de créer une table avec 100 champs tu peux en créer une avec seulement 2 champs.
Disons que le table s’appel lecture
article | lecture
article1 | 1
article2 | 3
…
donc ici, il y a eu une lecture de l’article 1 et 3 lectures de l’article 2.
Si maintenant l’utilisateur regarde la page ou se trouve l’article 2, sur cette page tu mets la function que j’avais mis plus haut :
function afficherNbreLecture($article)
{
$fp = mysql_connect($host, $user, $password) OR die (“Connexion impossible”);
mysql_select_db(TaBaseDeDonnees, $fp) OR die ("Impossible de Séléctionner la base de données);
$s = “SELECT lecture FROM lecture WHERE article=’”.mysql_real_escape_string($article)."’";
$res = mysql_query($s) OR die (“Impossible d’executer la requete”);
//Selectionne le nombre de lectures pour l’article entré en arguement dans la fonction
if(mysql_num_rows($res)>0) //On regarde si l’on trouve bien quelque chose
{
$ligne = mysql_fetch_array($res);
echo $ligne[‘lecture’]; // Affiche le nombre de lectures
$s = “UPDATE taTable SET lecture=lecture+1 WHERE article=’”.mysql_real_escape_string($article)."’";
//Ensuite on met à jour la base de données en incrémentant le nombre de lecture
$res = mysql_query($s) OR die (“Impossible d’executer la requete”);
}
}
Donc voila, sur la page ou l’utilisateur doit voir l’article 2 tu mets :
afficherNbreLecture(article2);
et ca te retourne le nombre de lecture, et ca incrémente de 1