Fork me on GitHub




(1) 2 3 4 »


Ajout d'une fonctionnalité à xoopstube
Régulier
Inscrit: 10/09/2007 11:51
Messages: 476
Salut

J'aurais besoin d'un coup de main pour un morceau de code php si quelqu'un à un moment à m'accorder.

Je voudrais faire une vérification de doublons dans les titres des vidéos et si un ou plusieurs doublon existe, afficher le(s) lien(s) de cette vidéo pour qu'elle soit accessible directement sans autres recherche.

Le but étant de fournir à l'utilisateur un choix quand aux sources

Même vidéo, source différente

je sais pas trop par quel bout y prendre.

Peut être faire un preg_match sur le titre courant de la page singlevidéo.php et si l'on trouve un ou plusieurs résultat identique, on affiche les liens des pages correspondantes sous forme de boutons images sur la page de la vidéo courante.

En gros c'est ça.

Quand c'est dit comme ça ça à l'air facile mais ça l'est pas (satané php, plus dur à apprendre que ce que j'aurais cru (ça demande beaucoup de pratique que je n'ai pas).

Sinon j'ai trouvé une requête sql pour trouver les doublons:

adapté à xoopstube ça donnerais quelque chose comme ça:


sql SELECT   COUNT(title) AS nbr_doublontitle
FROM 
' . $xoopsDB->prefix('xoopstube_videos') . '
GROUP BY title
HAVING   COUNT
(title) > 1


Un DEV peut il m'aider un peu svp, merci d'avance.





Posté le : 07/12/2014 14:22
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2837
tu devrais plutôt utiliser les requêtes MySQL, genre LIKE, IN et les regex si besoin d'affinage dans ces fameuses requêtes. Ce sera beaucoup plus rapide que d'utiliser PHP.

Posté le : 07/12/2014 14:36
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Régulier
Inscrit: 10/09/2007 11:51
Messages: 476
Salut

Oui, je viens de trouver des requêtes pour vérifier les différents types de doublon dans mysql, j'ai mis à jour mon post plus haut.

Je vais voir si je peut en faire quelque chose.

Posté le : 07/12/2014 14:47
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Régulier
Inscrit: 10/09/2007 11:51
Messages: 476
$sql   SELECT FROM ' . $xoopsDB->prefix('_xoopstube_videos') . ' WHERE title LIKE "$title"          AND (published AND published <= ' . time() . ')          AND (expired OR expired ' . time() . ')          AND offline 0           AND cid 0


je suis pas sur qu'on puisse mettre $title dans la requête, ça va fonctionner en faisant comme ça?

bon la requête passe sans erreur.

la voici:

$sql   'SELECT * FROM ' $xoopsDB->prefix('xoopstube_videos') . ' WHERE title LIKE "$title"          AND (published > 0 AND published <= ' time() . ')          AND (expired = 0 OR expired > ' time() . ')          AND offline = 0           AND cid > 0'$result    $xoopsDB->query($sql); $video_arr2 $xoopsDB->fetchArray($result);

Posté le : 07/12/2014 15:56
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Admin Frxoops
Inscrit: 05/03/2005 05:20
De Vaucluse
Messages: 960
Directement dans la requête en utilisant DISTINCT ?

SELECT COUNT(DISTINCT colonneFROM table




Posté le : 07/12/2014 16:10

Open in new window

Xoops 2.5.7.2 - Debian 8.2 - Apache 2.4.10 - MySQL 5.5.47 - Php 5.6.17
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Régulier
Inscrit: 10/09/2007 11:51
Messages: 476
Je doit pas être loin de la vérité.
// vérifier les doublons de titre et afficher les autres sources
$sql   'SELECT lid, cid, title, published, vidsource FROM ' $xoopsDB->prefix('xoopstube_videos') . ' WHERE title LIKE "$title"
         AND (published > 0 AND published <= ' 
time() . ')
         AND (expired = 0 OR expired > ' 
time() . ')
         AND offline = 0 
         AND cid > 0'
;
$result    $xoopsDB->query($sql);

while (
$arr $xoopsDB->fetchArray($result)) {
    if (
xtube_checkgroups($arr['cid']) == true) {
    
$doublonuid['title']     = $xtubemyts->htmlSpecialCharsStrip($arr['title']);
    
$doublonuid['lid']       = $arr['lid'];
    
$doublonuid['cid']       = $arr['cid'];
    
$doublonuid['published'] = xoopstube_time(formatTimestamp($arr['published'], $xoopsModuleConfig['dateformat']));
    
$doublonuid['vidsource']       = $arr['vidsource'];
    
$xoopsTpl->append('doublon_uid'$doublonuid);
    }
}


et j'ai ajouté dans le template singlevideo.html :

<div style="margin-right: 10px;">
    <
a href="<{$xoops_url}>/modules/<{$video.module_dir}>/singlevideo.php?cid=<{$doublon_uid.cid}>&amp;lid=<{$doublon_uid.lid}>"><{$doublon_uid.title}></a>
<{
$doublon_uid.published}>)
</
div>


mais rien ne s'affiche si ce n'est un ) pas d'erreur php ou mysql, j'imagine que la variable $title ne fonctionne pas.


Posté le : 07/12/2014 16:23
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Régulier
Inscrit: 10/09/2007 11:51
Messages: 476
Apparemment c'est bien ça.

La variable title ne fonctionne pas, j'ai essayé avec $video.title et video_arr.tittle et ça ne marche pas non plus.
il faut revoir cette partie: WHERE title LIKE "$title"

Donc comment je peut faite pour comparer le titre de la page courante avec les titres qui sont en base de données?

Merci de votre aide.

Posté le : 07/12/2014 17:17
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Admin Frxoops
Inscrit: 04/03/2011 09:10
De Lot
Messages: 2837
mauvaise concaténation

si tu utilises les simples quotes c'est à dire ' pour créer ta requête

tu est sensé avoir '.$title.' et par "$title"

Posté le : 07/12/2014 21:58
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Régulier
Inscrit: 10/09/2007 11:51
Messages: 476
Salut

Merci, je vais essayer. (pfiouuu difficile à apprendre le php quand on ne l'utilise pas souvent).

Posté le : 08/12/2014 11:43
Partager Twitter Partagez cette article sur GG+
Re: Ajout d'une fonctionnalité à xoopstube
Régulier
Inscrit: 10/09/2007 11:51
Messages: 476
re

bon ben rien ne marche, quel galère.

pour en revenir à DISTINCT en fait c'est le contraire de ce que je veut faire car il n'affiche pas les doublons justement.

Posté le : 08/12/2014 15:51
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
(1) 2 3 4 »



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

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