PEAK XOOPS - [myAlbum-P]サイト内検索で説明文がNullの場合 in englishin japanese

[myAlbum-P]サイト内検索で説明文がNullの場合

  • You cannot open a new topic into this forum
  • Guests cannot post into this forum
Previous post - Next post | Parent - Children.1 | Posted on 2006/10/9 22:38
TAIZAN  一等兵   Posts: 13
いつもたいへんお世話になっております。

早速ですが、サイト内検索(modules\search)でmyAlbum-Pを検索した場合、
「タイトル」および「説明」を検索するようになっているようです。
\modules\myalbum\include\search.inc.php によると、
function '.$mydirname.'_search( $keywords , $andor , $limit , $offset , $userid )
{
	global $xoopsDB ;

	include( XOOPS_ROOT_PATH."/modules/'.$mydirname.'/include/read_configs.php" ) ;

	$sql = "SELECT l.lid,l.cid,l.title,l.submitter,l.date,t.description FROM $table_photos l LEFT JOIN $table_text t ON t.lid=l.lid WHERE status>0" ;

	if( $userid > 0 ) {
		$sql .= " AND l.submitter=".$userid." ";
	}

	$whr = "" ;
	if( is_array( $keywords ) && count( $keywords ) > 0 ) {
		$whr = "AND (" ;
		switch( strtolower( $andor ) ) {
			case "and" :
				foreach( $keywords as $keyword ) {
					$whr .= "CONCAT(l.title,\' \',t.description) LIKE \'%$keyword%\' AND " ;
				}
				$whr = substr( $whr , 0 , -5 ) ;
				break ;
この $whr .= "CONCAT(l.title,\' \',t.description) LIKE ... において、
説明(description)がNullの場合、CONCATすると全体でNullとなり、
タイトル部分でヒットしても、検索結果に現れないのです。
タイトル名は必ず書くのですが、説明文は無いこともあります。

何かご助言をいただければ幸いです。
よろしくお願いいたします。
Votes:0 Average:0.00
Previous post - Next post | Parent - Children.1 | Posted on 2006/10/14 6:29
GIJOE  先任軍曹   Posts: 4110
う〜ん。これを読む限りだと、バグっぽく見えますが…
Quote:
説明(description)がNullの場合
ということ自体が、あり得ない気がします。
今、あらためてチェックした限りでは、photosテーブルにINSERTするケースでは、かならず対応するレコードをtextテーブルにもINSERTしているように見えます。もちろん、descriptionフィールドは、

description text NOT NULL,

なので、textテーブルにレコードさえあれば、NULLはないでしょう。

何か、特殊なINSERTをしましたか? (手動インポートとか)

もちろん、検索側で、CONCAT()を使わないSQLを構成するように書き換えるのも手ですが、今さらmyAlbum-Pに手を入れたいとも思わないですね。(穴があれば別ですが)
Votes:0 Average:0.00
Previous post - Next post | Parent - No child | Posted on 2006/10/15 3:39
TAIZAN  一等兵   Posts: 13
回答いただき、ありがとうございました。
確かにおっしゃるとおりです。

素人改造を行っており、
Quote:
photosテーブルにINSERTするケースでは、かならず対応するレコードをtextテーブルにもINSERTしているように見えます。
この点が怪しいので、確認してみます。

たいへんお騒がせをいたしました。
今後ともどうぞよろしくお願いいたします。
Votes:2 Average:0.00

  Advanced search


Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!