开发者

Why this code does not output the result?

开发者 https://www.devze.com 2023-03-29 12:12 出处:网络
I get a don\'t get any errors or warning. My table is called products and the field is called name. I want to find the revelance between first and second column.

I get a don't get any errors or warning. My table is called products and the field is called name. I want to find the revelance between first and second column.

Why am I missing here?

<?php

mysql_connect("localhost"," "," ");
mysql_select_db(" ");
mysql_query('set names utf8');

$query = mysql_query("SELECT t1.name AS first FROM products t1");
$row = mysql_fetch_assoc($query);
if (!$query) {
    die('Invalid query: '开发者_如何学运维 . mysql_error());
}

do {
    $first = $row['first'];
    $query2 = mysql_query("SELECT t1.name AS first,
                                 t2.name AS second,
                                 (MATCH (t2.name) AGAINST ('$first')) AS relevance
FROM products t1, products t2
                          WHERE t1.name = '$first'
                          ORDER BY relevance DESC");
if (!$query2) {
    die('Invalid query: ' . mysql_error());
}
    $most_similar = mysql_fetch_assoc($query2);
} while ($row = mysql_fetch_assoc($query));
?>


There is no t2 in your query, but in your select you have t2.name as second.

Actually, you don't have a FROM clause at all...

Edit:

This is a random guess at what you're trying to achieve...I don't really know, but you should be able to edit the query as needed.

$query2 = mysql_query("SELECT '$first' AS first,
                             t.name AS second,
                             (MATCH (t.name) AGAINST ('$first')) AS relevance
                      FROM products t
                      ORDER BY relevance DESC");


Maybe you should check if $query2 is not FALSE and display an error with mysql_error() otherwise. See also the example on http://www.php.net/manual/en/function.mysql-query.php.

0

精彩评论

暂无评论...
验证码 换一张
取 消