Fork me on GitHub






condition, verification
Régulier
Inscrit: 19/01/2008 11:22
De vienne 86
Messages: 380
Bonjour,

j'ai ajouté un bouton sur des pages contenant des vidéos.

Ce bouton envoi sur une page php permettant d'ajouter des données dans la bdd ainsi que l'uid du cliqueur.

En somme, un moyen de faire une liste de favoris vidéos.

Ce que je n'arrive pas à inclure, sous forme de requête, c'est une vérification avant l'ajout, ce, afin d'éviter les doublons inutiles dans les favoris.

La page concernée :
<?

include(
"../../mainfile.php");
include(
"../../header.php");
include 
"header.php";

///si membre
if ($xoopsUser)
{

  
///recup des variables
  
$uid $xoopsUser->getVar("uid");
  
$lid=$_GET['lid'];
  
$cid=$_GET['cid'];
  
$title=$_GET['title'];
 
  
///vérification  si lid et cid existent pour uid du posteur
  
  ///insertion
  
$req "INSERT INTO favoris (id,uid,title,lid,cid) VALUES('','$uid','$title','$lid','$cid')"
  
or die(mysql_error());
  
mysql_query($req); 
  
  
/// redirection à la page de la vidéo
  
redirect_header("view.php?cid=$cid&lid=$lid"2"favoris ajouté avec succès !");
    exit();
}

//si pas membre = redirection
  
else 
{
  
redirect_header("index.php"2"Devenez membre pour profiter de cette fonctionnalité !");
    exit();


mysql_close();
include(
XOOPS_ROOT_PATH."/footer.php");
?>



Merci pour toute aide
a+

Posté le : 18/11/2008 12:19

Open in new windowAmicalement, Morgane
www.arenablabla.fr
Partager Twitter Partagez cette article sur GG+
Re: condition, verification
Guest_
b'jour,

Une solution serait d'utiliser un module prêt à l'emploi et que l'appelorio kezac... euh shortcuts

@+

Posté le : 18/11/2008 12:46
Partager Twitter Partagez cette article sur GG+
Re: condition, verification
Régulier
Inscrit: 19/01/2008 11:22
De vienne 86
Messages: 380
re,

1- shortcuts ne fonctionne pas sous le dernier ff et xoops 2.0.18 (du moins chez moi).

2- ce module ne correspond pas à ce que je veux réaliser ici...
Il s'agit de créer une liste de favoris sur un module spécifique.

merci pour toute aide
a+

Posté le : 18/11/2008 12:51

Open in new windowAmicalement, Morgane
www.arenablabla.fr
Partager Twitter Partagez cette article sur GG+
Re: condition, verification
Régulier
Inscrit: 19/01/2008 11:22
De vienne 86
Messages: 380
re,
pour le moment, chaque membre peut créer sa liste de vidéos favorites.
Le hic, c'est qu'il est possible en l'état actuel du code, de faire des doublons comme visible sur l'image ci-jointe.
merci pour toute aide
a+

Open in new window

Posté le : 18/11/2008 18:09

Open in new windowAmicalement, Morgane
www.arenablabla.fr
Partager Twitter Partagez cette article sur GG+
Re: condition, verification
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
Alors ce que tu demandes peut etre fait directement par la base de donnée ou sinon par prg...

Perso je prefere laisser faire la base de donnée ce qu'elle sait faire et en plus ca evite du code pour rien.

Ta table favoris fait le lien entre un utilisateur uid, et une video je presumes que c'est title l'ident de la video? c'est cela?
Apres je vois pas ce que font les 2 autres donnees lid et cid.

Peux tu donner la structure de tes tables ainsi que ce que represente les colonnes? ca sera plus simple pour t'expliquer.

Posté le : 18/11/2008 22:08
Partager Twitter Partagez cette article sur GG+
Re: condition, verification
Régulier
Inscrit: 19/01/2008 11:22
De vienne 86
Messages: 380
re,

les champs :
1- id
2- uid > de l'utilisateur
3- title > titre de la vidéo
4- cid et lid > représentant la catégorie et l'identifiant de la page contenant la vidéo. Nécessaire car plusieurs vidéos peuvent avoir exactement le même titre, ce qui en soit semble logique et plus confortable pour le posteur.

les favoris sont ensuite classé par titre asc.

Les utilisateurs peuvent supprimer leurs favoris comme bon leur sembles, ils peuvent donc sans souci effacer les doublons qui sont par ailleurs facilement visibles.
Suffit de regarder le screen précédemment posté.

Ce que je demande est simplement un détail pour améliorer le code.

Un truc du genre requête > rechercher dans la table l'uid de l'utilisateur voulant ajouter un favoris, puis comparer ce qu'il souhaite ajouter à ce qu'il a déjà en favoris. Si pas de cid et lid identique alors on ajoute, sinon zouuu on le redirecte

merci pour toute aide.
a+

Posté le : 19/11/2008 03:16

Open in new windowAmicalement, Morgane
www.arenablabla.fr
Partager Twitter Partagez cette article sur GG+
Re: condition, verification
Régulier
Inscrit: 06/01/2006 23:55
Messages: 379
Il n'y a pas besoin de faire de requete ou autre pour ton pb.
Il faut juste que ta structure de table soit correcte.

Ta table est en fait une table de relation entre d'autres tables. Ta table favoris fait le lien entre un utilisateur (uid de la table user) et la table qui contient tes donnees video (title, lid, cid => cle de la table je sais pas quoi)

(je comprend que la cle de ta video c'est title, lid, cid)

Donc pour etre tranquille, il te suffit juste de creer un index unique sur toutes ces colonnes, voir meme mieux tu crees une cle primaire sur toutes ces colonnes et tu vires id qui sert a rien.
Et tu es sur que tes elements seront uniques...

Du coup, tu n'as plus qu'a jouer la requete et si ton element est deja inscrit en base tu auras le droit a une erreur que tu peux recuperer normalement, et donc tu rediriges apres sur la bonne page.
Avantage de la solution :
- le pb de l'unicite est gere par la base de donnee et non par prg => c-a-d que meme si tu veux inserer un element sans passer par ton php, l'unicite sera gere (si tu veux ecrire par phpmyqdmin ou autre)
- c'est le role de la base de donnee
- c plus rapide => tu fais une seule requete d'insertion, si elle marche c ok, si tu as une erreur tu le sais. Pas besoin de faire une requete de recherche et une d'insertion apres.
- pas de code (moins de code moins de bug)

=> au moment de la suppression d'un user il faudra pas oublier de supprimer les lignes dans cette table, et pareil quand tu supprimeras une video...
Ca pourrait etre gere par la base de donnees sans aucun code si on utilise un autre moteur de MySQL avec les delete cascade mais sinon par code automatiquement => normalement pour etre propre il faudrait que tu surcharges user

Posté le : 19/11/2008 08:06
Partager Twitter Partagez cette article sur GG+
Re: condition, verification
Régulier
Inscrit: 19/01/2008 11:22
De vienne 86
Messages: 380
re,
merci pour ces infos.
Cela ne fonctionne pas en primary key (surement que je ne dois pas faire la requète comme il faut lol)
Par contre en mettant en unique = ok
En effet, aucune erreur n'est retournée à l'utilisateur, mieux le redirect lui indique que l'ajout est ok, mais réellement le doublon n'a pas été créé dans la bdd.
Ta remarque sur la suppression d'un user est intéressante, il va falloir que je réfléchisse à cela car il n'y en a pas qu'une liste de favoris, mais sur plusieurs modules...

merci pour ton aide qui m'a été précieuse.
a+

Posté le : 19/11/2008 13:45

Open in new windowAmicalement, Morgane
www.arenablabla.fr
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

63 Personne(s) en ligne (47 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 63 | Plus ...