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


Simple php mysql query returns only one of two columns

我是一个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);

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

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

  2. 您还需要获取您的结果:

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

我很确定

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

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

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