par
rakizm » 21 juil. 2006, 15:05
je ne savais pas où mettre cette question, vous m'exuseraient si c'est pas le bon endroit.
bonjour à tous

je vous expose mon pb:
cette fonction va chercher les utilisateurs d'un meme site et pour chaque utilisateur elle va chercher les "rqs" qu'il a fait. donc le résultat final est une liste de "rqs" appartenant à plusieurs utilisateurs.
je voudrai appliquer un LIMIT sur le résultat final!! comment faire
nb: c'est pour une pagination
//fonction pour obtenir les requetes faites par les utilisateurs d'un meme site
function get_rqs($date,$subject,$min){
$this->rqs = array();
$users_dialog = array();
$db = new DB_Sql();//objet de connection à la base
$db->Database = DATABASE_NAME_APPS;
$db->User = DATABASE_USER_APPS;
$db->Password = DATABASE_PASSWORD_APPS;
$db->Host = DATABASE_HOST_APPS;
$sSQL = "SELECT id_user as id_user ".
"FROM Emc_user ".
"WHERE id_site = ".$this->id_site ;//requete qui cherche les utilisateurs d'un meme site
$db->query($sSQL);
$next_record = $db->next_record();
while($next_record){
$u=$db->f("id_user");
//echo $u;
array_push($users_dialog,$u);//tableau contenant les utilisateurs
$next_record = $db->next_record();
}
foreach($users_dialog as $creator_user){
$db = new DB_Sql();//objet de connection
$db->Database = DATABASE_NAME;
$db->User = DATABASE_USER;
$db->Password = DATABASE_PASSWORD;
$db->Host = DATABASE_HOST;
$sSQL = "SELECT id_rqs as id_rqs ".
"FROM km_request ";//requete qui cherche les request de chaque utilisateur
if (($date=="") and ($subject==""))
{$sSQL.=" WHERE rqs_creator_user = ".$creator_user ;}
if (($date=="") and ($subject!==""))
{$sSQL.=" WHERE rqs_subject LIKE '%".$subject."%' AND rqs_creator_user = ".$creator_user ;}
if (($date!=="") and ($subject==""))
{$sSQL.=" WHERE rqs_creation_date >='".$date." 00:00:00' AND rqs_creator_user = ".$creator_user ;}
if (($date!=="") and ($subject!==""))
{$sSQL.=" WHERE rqs_creation_date >='".$date." 00:00:00' AND rqs_subject LIKE '%".$subject."%' AND rqs_creator_user = ".$creator_user ;}
if ($min)
{$sSQL.=" LIMIT ".$min.",15 ";}
echo ($sSQL);
$db->query($sSQL);
$next_record = $db->next_record();
while($next_record){
$u=$db->f("id_rqs");
//echo $u;
array_push($this->rqs,$u);//tableau contenant toutes les requests
$next_record = $db->next_record();
}
}
}
ainsi fait ça ne marche pas parceque j'applique le LIMIT "n" fois où "n" est le nombre d'utilisateurs d'un meme site.
svp aidez moi

je ne savais pas où mettre cette question, vous m'exuseraient si c'est pas le bon endroit.
bonjour à tous :) je vous expose mon pb:
cette fonction va chercher les utilisateurs d'un meme site et pour chaque utilisateur elle va chercher les "rqs" qu'il a fait. donc le résultat final est une liste de "rqs" appartenant à plusieurs utilisateurs.
je voudrai appliquer un LIMIT sur le résultat final!! comment faire
nb: c'est pour une pagination
[php]//fonction pour obtenir les requetes faites par les utilisateurs d'un meme site
function get_rqs($date,$subject,$min){
$this->rqs = array();
$users_dialog = array();
$db = new DB_Sql();//objet de connection à la base
$db->Database = DATABASE_NAME_APPS;
$db->User = DATABASE_USER_APPS;
$db->Password = DATABASE_PASSWORD_APPS;
$db->Host = DATABASE_HOST_APPS;
$sSQL = "SELECT id_user as id_user ".
"FROM Emc_user ".
"WHERE id_site = ".$this->id_site ;//requete qui cherche les utilisateurs d'un meme site
$db->query($sSQL);
$next_record = $db->next_record();
while($next_record){
$u=$db->f("id_user");
//echo $u;
array_push($users_dialog,$u);//tableau contenant les utilisateurs
$next_record = $db->next_record();
}
foreach($users_dialog as $creator_user){
$db = new DB_Sql();//objet de connection
$db->Database = DATABASE_NAME;
$db->User = DATABASE_USER;
$db->Password = DATABASE_PASSWORD;
$db->Host = DATABASE_HOST;
$sSQL = "SELECT id_rqs as id_rqs ".
"FROM km_request ";//requete qui cherche les request de chaque utilisateur
if (($date=="") and ($subject==""))
{$sSQL.=" WHERE rqs_creator_user = ".$creator_user ;}
if (($date=="") and ($subject!==""))
{$sSQL.=" WHERE rqs_subject LIKE '%".$subject."%' AND rqs_creator_user = ".$creator_user ;}
if (($date!=="") and ($subject==""))
{$sSQL.=" WHERE rqs_creation_date >='".$date." 00:00:00' AND rqs_creator_user = ".$creator_user ;}
if (($date!=="") and ($subject!==""))
{$sSQL.=" WHERE rqs_creation_date >='".$date." 00:00:00' AND rqs_subject LIKE '%".$subject."%' AND rqs_creator_user = ".$creator_user ;}
if ($min)
{$sSQL.=" LIMIT ".$min.",15 ";}
echo ($sSQL);
$db->query($sSQL);
$next_record = $db->next_record();
while($next_record){
$u=$db->f("id_rqs");
//echo $u;
array_push($this->rqs,$u);//tableau contenant toutes les requests
$next_record = $db->next_record();
}
}
}[/php]
ainsi fait ça ne marche pas parceque j'applique le LIMIT "n" fois où "n" est le nombre d'utilisateurs d'un meme site.
svp aidez moi :)