Laurent LEVIER
Thu, 15 Feb 2001 11:07:22 -0800
Ok, I will change my query with the first one.
After a test, yes it slows the display of the page. So I changed a bit my howto.
I removed the init.inc changes and put into template.inc after the
lang_url_translation treatment:
// ----------------------------------------------------------------------
// Laurent LEVIER changes to add NU code to return number of indexed URLs
// ----------------------------------------------------------------------
if (ereg('\$NU',$str))
{
$query ="SELECT count(*) FROM url WHERE status IN (200,304)";
if($DEBUG) echo "last_parse(): ",$query,"<BR><HR>";
if (!$res=db_query($query)) print_error_local('Query error: '.$query."\n<
BR>".db_error());
$numurlsdb="10";
if ($row=db_fetchrow($res))
{ $numurlsdb=$row[0]; }
db_freeresult($res);
$str=ereg_replace('\$NU', $numurlsdb, $str);
}
// ----------------------------------------------------------------------
// Laurent LEVIER changes to add NU code to return number of indexed URLs
// ----------------------------------------------------------------------
Works also fine, and have the advantage to be included easily. Only activated when you
request the feature :)
@+/L
At 12:41 15/02/2001 +0400, Alexander Barkov wrote:
>This "SELECT count(*) FROM url" will mean the TOTAL number
>of documents. Note that it is actually not the number of
>searchable documents, because some of them may be not indexed yet
>when database is being populated during first indexing.
>
>
>
>Probably
> "SELECT count(*) FROM url WHERE status IN (200,304)"
>or
> "SELECT count(*) FROM url WHERE docsize>0"
>
>will be closer to the number of searchable documents, but this will work
>slowly.
>
>
> Also note that not all databases return count(*) quickly like MySQL,
>for
>example, PostgreSQL will scan whole table to calculate the count.
>
>We'll add new template variable responsible for this, but it seems
>it will be useful with MySQL only.
>
>
>
>Laurent LEVIER wrote:
>>
>> Hi Guys,
>>
>> I wished to display the number of indexed URLs. To be able to do this nicely (using
>templates), I did the following changes:
>>
>> *** in init.inc, in the global variables declarations, i added:
>> global $numurlsdb;
>>
>> *** Then, after
>>
>db_init($dbtype,$dbname,$dbhost,$dbuser,$dbpass,$dbport,$dbodbc,$dbodbc_cursor_type);
>>
>> if ($db_format == '3.1') {
>> $cs=load_cs($cat);
>> $cp=load_cp($cat);
>> }
>>
>> *** I added:
>> // ----------------------------------------------------------------------
>> // Laurent LEVIER changes to add NU code to return number of indexed URLs
>> // ----------------------------------------------------------------------
>>
>> $query ="SELECT count(*) from url";
>>
>> if($DEBUG) echo "last_parse(): ",$query,"<BR><HR>";
>>
>> if (!$res=db_query($query)) print_error_local('Query error:
>'.$query."\n<BR>".db_error());
>>
>> $numurlsdb="10";
>> if ($row=db_fetchrow($res)) {
>> $numurlsdb=$row[0];
>> }
>>
>> db_freeresult($res);
>>
>> *** To parse the data nicely, I changed template.inc:
>>
>> *** I added in all the ereg_replace a new one. I put it after lang_url_translation:
>>
>> $str=ereg_replace('\$NU', $numurlsdb, $str);
>>
>> *** and of course, the global declaration in the print_template function:
>>
>> global $numurlsdb;
>>
>>
>***************************************************************************************
>> It works fine. In my case, adding this in the top section of the template:
>> $NU URLs exists in the database.
>>
>> This new keyword is now replaced with the number of urls in table url.
>>
>> As this query is SQL92 conformant, it should work everywhere, so no need to deal
>with SQL server format.
>>
>> Please confirm this represent the real number of URL that can be searched.
>>
>> Enjoy!
>>
>> Laurent LEVIER
>> IT Systems & Networks, Unix System Engineer
>> Security Specialist
>>
>> Argosnet Security Server : http://www.Argosnet.com
>> "Le Veilleur Technologique", "The Technology Watcher"
Laurent LEVIER
IT Systems & Networks, Unix System Engineer
Security Specialist
Argosnet Security Server : http://www.Argosnet.com
"Le Veilleur Technologique", "The Technology Watcher"
______________
If you want to unsubscribe send "unsubscribe udmsearch"
to [EMAIL PROTECTED]