1

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

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

4

2 回答 2

1

我很确定这个

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

应该

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

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

于 2013-05-19T18:11:41.567 回答
1
  1. 不要使用这些mysql_*功能,因为它们已被弃用且不安全。使用 MySQLi 或 PDO

  2. 您还需要获取结果:

    $query = "blah"
    $result = mysql_query($query);
    
    while($row = mysql_fetch_assoc($result)) {
        echo "{$row['text']}, {$row['date_written]}";
    }
    
于 2013-05-19T18:13:42.787 回答