2010-10-14 21 views
0

J'ai besoin d'extraire une liste de tous les noms d'utilisateur de la table des utilisateurs dans vBulletin des personnes qui étaient enregistrées jusqu'à une certaine date. Ainsi, par exemple, j'ai besoin de tous les membres jusqu'au 1er octobre, mais après cela n'est pas nécessaire.vBulletin - extraire les noms d'utilisateur de la table utilisateur

Le champ 'joindate' est exprimé en secondes je pense. Par exemple. 1116022743. Comment puis-je extraire les noms d'utilisateur sur cette base?

acclamations

Répondre

0

dur pour vous donner une réponse exacte sans connaître la structure de la table VB, mais la requête serait quelque chose comme

$date = strtotime('10/01/2010'); 
/* this is the date you are basing our query on 
we make a timestamp of it for comparison */ 

$sql = "SELECT * FROM `vb_users_table` WHERE `joindate` <= '$date'"; 

ces « secondes » sont horodatages btw (techniquement secondes, mais le le terme correct est l'horodatage).

exemple:

<?php 

$date = strtotime('10/01/2010'); //1st oct 2010 
$old = strtotime('3/9/2009'); // 9th mar 2009 
$new = strtotime('3/9/2011') // 9th mar 2011 

/* substitute $old with $new to see the effect */ 
if($old<=$date) { 
    echo date('d M Y', $old) . ' is before ' . date('d M Y', $date); 
} else { 
    echo date('d M Y', $old) . ' is not before ' . date('d M Y', $date); 
} 
0

Vous pouvez utiliser la fonction UNIX_TIMESTAMP MySQL pour aider à construire la requête. Voici une requête qui va extraire les noms d'utilisateur de tous les utilisateurs dans une installation vBulletin où leur date d'inscription est avant le 1er Octobre 2010:

SELECT username FROM user WHERE joindate < UNIX_TIMESTAMP('2010-10-01 00:00:00'); 

Si vous voulez faire l'inverse (convertir les horodateurs de forme UNIX en lisibles) vous pouvez utiliser FROM_UNIXTIME.

+0

Dans mon cas, c'était: SELECT nom d'utilisateur FROM vb_user WHERE joindate