Dedoublonnage d'un tableau tiré d'une BDD puis UPDATE

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Dedoublonnage d'un tableau tiré d'une BDD puis UPDATE

par gandolfi » 30 mai 2009, 12:21

je n'y arrive pas uniquement avec du SQL.
C'est pour cela que je suis parti sur du php avec tri par tableau

par dunbar » 28 mai 2009, 20:05

Supprime le distinct alors
DISTINCT(post_category),
Enfin tu a l'idée, essaye d'autre combi

par gandolfi » 28 mai 2009, 20:03

cela affiche 2 auteurs different dans la meme categorie mais me zappe un des 2 auteurs qui a ecrit un autre article dans une seconde categorie.

par dunbar » 28 mai 2009, 19:45

Cela m'affiche les 7 posts "draft" existants par date mais ne tient pas compte qu'il y a plusieurs posts du meme auteur dans une meme categorie.
SELECT DISTINCT(post_category),id, post_category, post_date, post_date_gmt FROM wp_posts
            WHERE post_status = 'draft'
GROUP BY post_auteur            
ORDER BY post_date
            DESC LIMIT 0 , 15
Ceci peut-être alors :?:

par gandolfi » 28 mai 2009, 19:40

Cela m'affiche les 7 posts "draft" existants par date mais ne tient pas compte qu'il y a plusieurs posts du meme auteur dans une meme categorie.

par dunbar » 28 mai 2009, 19:21

il est du type datetime, est ce important ?
Je ne suis pas certain d'avoir compris, mais que donne cette requete
SELECT DISTINCT(post_author),id, post_category, post_date, post_date_gmt FROM wp_posts
            WHERE post_status = 'draft'
            ORDER BY post_date
            DESC LIMIT 0 , 15
Ici on selectionne par autheur, qui possede status à draft et on ne prend que les 15 dernier enregistrements :?:

par gandolfi » 28 mai 2009, 18:42

il est du type datetime, est ce important ?

par dunbar » 28 mai 2009, 16:53

Salut,
Ton champs post_date est de quel type dans ta table :?:

par Invité » 28 mai 2009, 07:27

Le soucis c'est que je trie selon 2 criteres dans le tableau (array_unique et distinct ne trie que selon un critere)
- auteur deja present dans la categorie n°x

En fait au debut je voulais trier les post en mettant comme condition si l'auteur n'existe pas -> enregistrer les posts retenus dans un tableau.

mais si l'auteur existe alors verifier dans le tableau precedent s'il existe pour la categorie actuelle.
Si non alors on enregistre dans le tableau precedent.

Mais je ne sais pas si c'est une bonne solution et ne sais pas trop comment la mettre en oeuvre.

Merci

par thehawk » 27 mai 2009, 23:32

Je serais tenter de t'orrienter vers :
en sql : DISTINCT http://sql.1keydata.com/fr/sql-distinct.php
en php: array_unique()

Bonne chance Hawk

Dedoublonnage d'un tableau tiré d'une BDD puis UPDATE

par gandolfi » 27 mai 2009, 23:12

salut,

je cherche a recuperer des donnees d'une bdd sql pour les trier et faire un update final de ce que j'ai trié. C'est pour poster 15 post par jour sur un blog (dratf => publish) mais en ayant au max un post par auteur dans une categorie pour eviter qu'un auteur ai 2 articles d'affilé le meme jour dans la meme categorie.

En clair dans ma BDD : Table = wp_posts, champ: post_status, post_author, post_category,post_date.

Le but est d'extraire tous les posts ayant le status draft et de les classer par date

Code : Tout sélectionner

$result = "SELECT id,post_author,post_category,post_date,post_date_gmt FROM wp_posts WHERE post_status = 'draft' ORDER BY post_date ASC";
Puis de les mettre dans un tableau

Code : Tout sélectionner

if (mysql_num_rows($result)) { $data = mysql_fetch_array($result); ...
Ensuite je voudrais trier ce tableau pour ne garder que les 15 posts du plus ancien au plus recent etant d'auteur different pour une meme categorie. Les posts du meme auteur dans la meme categorie qui auront ete mis de coté seront ensuite à nouveau examiné le lendemain.
Il faudrait enfin que je fasse un update des posts dans la BDD avec une boucle je pense.

L'embetant c'est que je ne sais pas comment m'y prendre et par ou commencer. Au départ je voulais essayer de tout faire en sql mais je ne suis pas assez bon pour cela. J'ai donc essayé de m'aider du PHP.

merci pour votre aide.