Il y a actuellement 223 visiteurs
Samedi 20 Avril 2024
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

Question sur table mysql et programmation

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

Question sur table mysql et programmation

Message le 01 Sep 2010 13:39

Bonjour,

Je m'adresse à vous car je n'ai pas trouvé mon bonheur sur la toile.
J'explique mon problème : j'ai dix vidéos sur mon site. Pour chacune des vidéos, j'ai fait une page différente. Dans chaque pages on peut insérer un commentaire. J'ai créé une table MySql pour la vidéo 1 puis une autre table pour la vidéo 2 et ainsi de suite.
Le système fonctionne très bien mais je pense au futur et je me dis que lorsque j'aurais une cinquantaine de vidéos voir plus, j'aurais autant de tables (pas top) dans PHPAdmin.

J'ai déjà essayé de créer une seule table mais lorsque l'on met un commentaire dans la vidéo 1 ou autre, il apparaît dans les toutes les pages (PHP).

Voici le code (source le site du zéro) :
Code: Tout sélectionner
if (isset($_POST['pseudo']) AND isset($_POST['message']))
{
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$message = nl2br($message);
$msg_date = date('Y-m-d H:i:s');

mysql_query("INSERT INTO commentairesvideo1 VALUES('', '" . $pseudo . "', '" . $message . "', '" . $msg_date . "')");
}

// --------------- Etape 2 -----------------
// On écrit les liens vers chacune des pages
// -----------------------------------------

$nombreDeMessagesParPage = 20; // Essayez de changer ce nombre pour voir :o)
$retour = mysql_query('SELECT COUNT(*) AS nb_messages FROM commentairesvideo1');
$donnees = mysql_fetch_array($retour);
$totalDesMessages = $donnees['nb_messages'];
$nombreDePages = ceil($totalDesMessages / $nombreDeMessagesParPage);

echo 'Page : ';
for ($i = 1 ; $i <= $nombreDePages ; $i++)
{
echo '<a href="/videos/dans_le_lit/video2.php?page=' . $i . '">' . $i . '</a> ';
}
?>

</p>
<!-- début tableau messages -->
<table align="center" width="100%" cellspacing="1" cellpadding="0" class="maintable ">
<tr>
<td class="tableh1" colspan="7">Les messages</td>
</tr>

<tr>

<table width="100%" cellpadding="0" cellspacing="0" class="thumbnails">
<tr>
<td align="left">

<?php


// --------------- Etape 3 ---------------
// Maintenant, on va afficher les messages
// ---------------------------------------

if (isset($_GET['page']))
{
$page = intval ($_GET['page']);
}
else // La variable n'existe pas, c'est la première fois qu'on charge la page
{
$page = 1; // On se met sur la page 1 (par défaut)
}

// On calcule le numéro du premier message qu'on prend pour le LIMIT de MySQL
$premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage;

$reponse = mysql_query('SELECT * FROM commentairesvideo1 ORDER BY id DESC LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage);

while ($donnees = mysql_fetch_array($reponse))
{
echo '<p><strong>' . $donnees['pseudo'] . '</strong> a écrit le '. $donnees['msg_date'] .' :<br />' . $donnees['message'] . '</p>';
}

mysql_close(); // On n'oublie pas de fermer la connexion à MySQL ;o)



Ma question est : Pouvez vous m'aider à finaliser le code pour que je n'utilise qu'une seule table SQL, pour les commentaires de chaque page (par exemple "commentsvideo"), mais sans que les commentaires apparaissent dans toutes les pages à la fois ?
Une sorte de table globale pour l'ensemble des commentaires

Merci d'avance à toutes et à tous pour votre aide
Dernière édition par H3bus le 01 Sep 2010 15:32, édité 1 fois.
Raison: Ajout des balises [code][/code]
Avatar de l'utilisateur
romain83000
Expert(e)
Expert(e)
 
Messages: 668
Inscription: 01 Sep 2010 12:56
Localisation: Peyrehorade 40
 


Re: Question sur table mysql et programmation

Message le 01 Sep 2010 16:19

Salut,

Tu peux par exemple créer une table "commentairesvideo" sur le même modèle que "commentairesvideo1" mais avec un champ supplémentaire pour stocker le numéro de la vidéo (exemple 'num_video'). Ensuite tu modifie ta requête d'ajout de commentaire pour renseigner ce champ 'num_video' à chaque nouveau commentaire, et pareil pour la requête qui lit les commentaires, tu lui rajoute une sélection de la vidéo (WHERE num_video = ...).
Avatar de l'utilisateur
gael49
Expert(e)
Expert(e)
 
Messages: 1935
Inscription: 07 Sep 2004 20:11
Localisation: Les Mauges
 

Re: Question sur table mysql et programmation

Message le 01 Sep 2010 16:47

Salut Gael49,

Merci pour tes conseils. Je vais essayer comme ça.

merci encore
Avatar de l'utilisateur
romain83000
Expert(e)
Expert(e)
 
Messages: 668
Inscription: 01 Sep 2010 12:56
Localisation: Peyrehorade 40
 

Re: Question sur table mysql et programmation

Message le 01 Sep 2010 17:53

J'ai indiqué le nouveau champs pour ma requête d'ajout comme tu me l'a spécifié

// On peut enfin enregistrer :o)
mysql_query("INSERT INTO commentsvideo VALUES('', '" . $pseudo . "', '" . $message . "', '" . $msg_date . "','" . $num_video . "')");

Par contre qu'est ce que je dois renseigner ici (?)

$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
$message = mysql_real_escape_string(htmlspecialchars($_POST['message'])); // De même pour le message
$message = nl2br($message); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />
$msg_date = date('Y-m-d H:i:s');
$num_video = ?

merci gael49
Avatar de l'utilisateur
romain83000
Expert(e)
Expert(e)
 
Messages: 668
Inscription: 01 Sep 2010 12:56
Localisation: Peyrehorade 40
 

Re: Question sur table mysql et programmation

Message le 01 Sep 2010 20:03

Salut,

Merci pour tes conseils, j'ai trouvé le bon code à saisir. Maintenant j'ai une seule table commentaire pour toutes mes vidéos.

merci encore
Avatar de l'utilisateur
romain83000
Expert(e)
Expert(e)
 
Messages: 668
Inscription: 01 Sep 2010 12:56
Localisation: Peyrehorade 40
 



Sujets similaires

Message Question sur macbook A 1466
Bonjour,Est-il possible de lire le disque dur au format "Nvme" du macbook A 1466 afin de vérifier son état comme je le fais d'habitude avec des SSD classiques avec crystal disk info sous windows car la batterie se charge bien mais l'écran s"allume et s'éteint, c'est bizarre ?MerciCord ...
Réponses: 7

Message question profil reseau
Re,Mets la configuration sur privé. Privé, c'est pour le PC personnel Public, c'est pour te connecter sur le réseau dans un lieu public et notamment avec une connexion Wifi ouverte.Différence ntre un réseau public et privéJe vois que Pac428 a répondu en même temp que moi mais cela a bloqué mon envo ...
Réponses: 6

Message [Réglé] Question: Où remplacer chargeur défectueux HP Victus
Bonjour à tous,Le chargeur de mon PC portable HP Victus ne fonctionne plus. Autrement, l'ordinateur n'avait pas de souci.Sauriez-vous où je pourrais en acheter un pour le remplacer ?J'ai vu des articles sur Amazon, mais je ne sais pas comment être sûr que le chargeur convient.Le plus simple serait u ...
Réponses: 8

Message [Java] Programmation fonctionnelle
Avec Java 8, une discrète (r)évolution s'est opérée, avec l'arrivée des functors et des expressions lambda, qui permettent (enfin) une programmation plus ou moins fonctionnelle. Qu'est-ce qu'un functor ? Rien de plus qu'une fonction encapsulée dans un objet ! Quel intérêt ? Avant Java 8, il était im ...
Réponses: 3

Message question signature
Bonsoir ma signature n'apparait plus, j'ai été voir dans mon profil, est y est mais pas sous mes messages, bizarre non ? Merci
Réponses: 2

Message Problème de création utilisateur dans MySQL en reseau
Bonjour la communautéJe suis un nouveau utilisateur de la SGBD Mysql, un ami m'en a suggéré dans le cadre de mon travail.Je précise que je suis entrain de créer un programme de gestion des élèves dans l'institution scolaire dans laquelle je travail.Etant nouveau utilisateur de MySql, je suis un peti ...
Réponses: 2

Message Question gravure
Bonjour,C'est un truc qui était assez fréquent, il est vrai que maintenant on passe plus par des clé usb, on en met plus et ce n'est plus cher, j'ai encore une tour de 100CD vierges que je n'ai jamais utilisé mais comme à l'étranger ce n'était pas onéreux pas de taxe de droit d'auteur ( existant mêm ...
Réponses: 4


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.