通过php显示具有特定列值的表中的数据

时间:2015-04-20 12:06:21

标签: php mysql

这应该很简单,但我还没有找到答案(我已经在stackoverflow中搜索了问题)。我在PHP上,我有一本关于mysql的书籍。 我想要的是一个列表显示在我的网页上,这些列表在php创建的表格上。我知道mysql代码:

SELECT title FROM books WHERE category='currently reading' 

在php上应用它会带来此错误,解析错误:语法错误,意外'当前'(T_STRING)

这是我的php代码:

<?php
include('include/databaseconnection.php');
include('include/insertingbooks.php');
// selecting data 
$result = mysql_query ('SELECT title FROM books WHERE category='currently reading'';);
//("SELECT title FROM books WHERE category LIKE $currently");
//opening table tag
echo "<table border = 1px>";
while ($data = mysql_fetch_array($result)) {
// printing table row
echo'<tr>';
echo '<td>'.$data['title'].'</td>';
echo'</tr>'; // closing table row
}
echo '</table>';
?>

如果我决定省略WHERE子句,除了显示所有书籍外,它的作用完全正常。 我已经尝试过的选项

  • 在设置变量WHERE category LIKE $category时使用$category = "currently reading";,但它有效。
  • 尝试将其链接到表单,我通过添加include('include/insertingbooks.php');(包含$category =$_POST ['category'];)并尝试放置$ category来获取类别的值。
  • 使用WHERE但它根本没用。

3 个答案:

答案 0 :(得分:2)

你这里有错误的引号和额外的分号 -

$result = mysql_query ('SELECT title FROM books WHERE category='currently reading'';);

更改为此(请注意双引号) -

$result = mysql_query ("SELECT title FROM books WHERE category='currently reading'");

此外,您应该stop using mysql_* functions。它们不再被维护,而是officially deprecated。请改为了解prepared statements,并使用PDO

您还应该将MySQL错误检查添加到您的查询和连接中。

使用or die(mysql_error())mysql_query()

例如:

$result = mysql_query ("SELECT title 
                        FROM books 
                        WHERE category='currently reading'") 
    or die(mysql_error());
  • 会捕获并显示语法错误。

答案 1 :(得分:0)

使用此代码:

<?php
include('include/databaseconnection.php');
include('include/insertingbooks.php');
// selecting data 
$result = mysql_query ("SELECT title FROM books WHERE category='currently reading'");
//("SELECT title FROM books WHERE category LIKE $currently");
//opening table tag
echo "<table border = 1px>";
while ($data = mysql_fetch_array($result)) {
// printing table row
echo'<tr>';
echo '<td>'.$data['title'].'</td>';
echo'</tr>'; // closing table row
}
echo '</table>';
?>

答案 2 :(得分:0)

只有报价问题 请将您的查询替换为:

$ result = mysql_query(&#34; SELECT title FROM books WHERE category =&#39;目前正在阅读&#39;&#34 ;;);

请注意,您不能使用相同的引号,例如。如果您使用双引号,则在内部使用单引号,如果使用单引号,则在

中使用双引号