죄송합니다. 저는이 초심자입니다. 그냥 내 머리를 match()
및 against()
주위에 가져올 수 없습니다.MySQL의 match()와() - score by order?
필자는 10 개의 변수 세트를 가지고 있는데, 본질적으로 10 개의 질문에서 답합니다. 나는 그것들을 MYSQL 테이블과 비교하고 5 개의 가장 관련있는 결과를 내림차순으로 선택하려고합니다.
각 결과에 대한 점수의 백분율을 표시하고자합니다.
변수는 다음과 같습니다
PERSON_NAME, AGE, A1, A2, A3, A5... A10
I가 표시되고 싶어 결과는 다음과 같이이다 :
피터 스미스 (
$a1 = y;
$a2 = n;
$a3 = n;
$a5 = y;
.
.
.
$a10 = n;
내 테이블 구조는 다음과 같은 것입니다 100 % 일치)
제인 그레이 (65 %
왜이 작동하지 않는 경기)질 샌더 (30 % 일치)?
$query = "SELECT *, MATCH($a1,$a2,$a3, $a4,$a5,$a6,$a6,$a7,$a8,$a9,$a10) AGAINST('A1, A2, A3, A4, A5, A6, A7, A8, A9, A10') AS score FROM table_name WHERE MATCH($a1,$a2,$a3, $a4,$a5,$a6,$a6,$a7,$a8,$a9,$a10) AGAINST('A1, A2, A3, A4, A5, A6, A7, A8, A9, A10') ORDER BY SCORE DESC";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
---------
$max_score = 0;
$data = array();
do {
if ($row['score'] > $max_score) {
$max_score = $row['score'];
}
echo $row['PERSON_NAME']." "[email protected]_format(($row['score']/$max_score)*100,0)."%<br>n";
} while ($row = mysql_fetch_assoc($result));
"이 쿼리가 작동합니까?" 왜 해보지 그래? :) – thatidiotguy
^^^ 나를 이길 수 있습니다 ^^^ –
[** 새 코드 **에서 mysql_ * 함수를 사용하지 마십시오. http://bit.ly/phpmsql. 그들은 더 이상 유지되지 않으며 [공식적으로 사용되지 않습니다] (http://j.mp/XqV7Lp). [** 빨간색 상자 **] (http://j.mp/Te9zIL)를 참조하십시오. 대신 [* prepared statements *] (http://j.mp/T9hLWi)에 대해 알아보고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용하십시오. mysqli) - [이 기사] (http://j.mp/QEx8IB)는 어떤 결정을 내리는 데 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 튜토리얼입니다] (http://j.mp/PoWehJ). – esqew