简单的php mysql查询只返回两列中的一列

时间:2013-05-19 18:07:53

标签: php mysql

我是一个PHP和MySQL新手试图针对包含2列的表编写简单查询:一个包含文本字符串,第二个包含日期字符串。下面的代码返回第一列(文本字符串),但不返回第二个日期字符串:

<?php
$link = mysql_connect('localhost', 'myuser', 'mypassword');
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
mysql_select_db('archive')or die("cannot select db");
$string = $_POST['keywords'];
$search_query = "SELECT text, date_written FROM archive_table WHERE text LIKE '%$string%'";
$result = mysql_query($search_query,$link);
$rows = mysql_num_rows($result);
if ($rows == 0) {
    echo "sorry, I haven&#8217;t written about ".$string." yet.";
    }
    $count = 0;
    while ($count < $rows) {
        echo mysql_result($result, $count);
        echo "\n\n";
        $count = $count + 1;
    }

mysql_close($link);

?>

我已尝试使用以下代码替换“echo mysql_result($ result,$ count);”,但它根本不返回任何内容:

echo mysql_result($result['text'], $result['date_written'], $count);

我希望这是一个相当简单的语法错误,很容易修复。提前谢谢!

2 个答案:

答案 0 :(得分:1)

我很确定这个

echo mysql_result($result['haiku_text'], $result['date_written'], $count);

应该是

echo mysql_result($result['text'], $result['date_written'], $count);

您在文本字段前面有一个前缀,但在您选择它时没有前缀。

答案 1 :(得分:1)

  1. 不要使用mysql_*函数,因为它们已被弃用且不安全。使用MySQLi或PDO

  2. 您还需要获取结果:

    $query = "blah"
    $result = mysql_query($query);
    
    while($row = mysql_fetch_assoc($result)) {
        echo "{$row['text']}, {$row['date_written]}";
    }