2013-05-19 51 views
1

我是一個PHP和MySQL新手,試圖針對包含2列的表編寫一個簡單查詢:一個使用文本字符串,第二個使用日期字符串。下面的代碼返回的第一列(文本字符串),而不是第二個日期字符串:簡單的php mysql查詢只返回兩列中的一列

<?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); 

?> 

我試過下面的代碼來代替「回聲mysql_result($結果,$計);」,但它什麼都沒有返回:

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

我希望這是一個相當簡單的語法錯誤,很容易修復。提前致謝!

回答

1
  1. 請勿使用mysql_*函數,因爲它們已被棄用且不安全。請使用庫MySQLi或PDO

  2. 您還需要獲取結果:

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

這個答案完美工作。謝謝! – extraspecialbitter

1

我敢肯定,這

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

應該

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

您在文本字段前面有一個前綴,但它沒有一個當你選擇它。

+0

「haiku_text」 是一個錯字。我已經在上面的示例中修復了它。 – extraspecialbitter