-1

我对 PHP 比较陌生,所以如果我听起来不知道自己在做什么,请耐心等待。因为这与事实相去甚远。另外我知道我的代码可能看起来很荒谬或可能会被简化,或者还有更简单的方法,我对此还不感兴趣。我希望它工作,我会从那里简化它。无论如何..

我正在构建一个访问数据库中名为“poems”的表的页面。页面的一侧是一旦从数据库中调用诗歌将显示的实际位置,另一侧(我们称之为“nav”)是数据库中的诗歌列表。该表具有三个特定字段:顺序、标题和诗歌。

导航端正确提取所有信息;它读取 order 和 Title 并将它们格式化为一个链接,该链接由 Title 读取并指向 poes.php/?p=#,其中 # 将是表中特定行的任何“顺序”。

实际内容方面就没那么幸运了。它应该使用 $_GET 从 URL 中提取 #,它确实如此,然后它变得可疑。我正在尝试使用那一点信息来提取标题和诗歌以显示两者的内容。听起来很简单,但在很长一段时间里,我得到的只是“mysql_fetch_assoc() 期望参数 1 是资源,给定的布尔值”。我终于通过在我的 SELECT/FROM/WHERE 中的单词顺序周围加上单引号解决了这个问题,正如你所看到的,但现在它什么也没返回……或者至少,当我尝试打印或回显时,什么都没有显示。我尝试了很多不同的东西,但对我来说没有任何意义。即使其他类似问题的建议和人们说对他们有用的东西也对我不起作用,我总是得到“预期这个,得到这个”错误。

`

        $page = $_GET["p"];
        echo $page;

        $qry = mysql_query("SELECT * FROM poems WHERE 'order'='$page'");
        while ($row = mysql_fetch_array($qry)) {
            $title = $row['Title'];
            $poem = $row['Poem'];
        }
        print $title;
        print $poem;
        ?>
    </td>





    <td id="poemssidebar">
        <?PHP
        $url = "SELECT * FROM poems";
        $result = mysql_query($url);

        while ($db_field = mysql_fetch_assoc($result) ) {

        print 
            "<a href=poems.php?p=" . 
            $db_field['order'] . 
            ">" . 
            $db_field['Title'] . 
            "</a><BR><BR>";
        }
        ?>
    </td>`

'echo $page' 就在那里,所以我看到了某种结果,直到它正常工作。当我在表中的两个可用条目之间单击时,我得到一个 1 或一个 2,但仅此而已。print $title 和 print $poem 什么也没给我。帮助!

4

2 回答 2

1

当您在周围添加单引号时order,最终将其变成了字符串,而不是列。您应该使用的是反引号:

SELECT * FROM poems WHERE `order`='$page'
于 2013-06-20T02:17:51.290 回答
0

我认为这是由于 sql 查询中使用的引号引起的。试试这个

$qry = mysql_query("SELECT * FROM poems WHERE order ='". $page. "'");
于 2013-06-20T02:22:28.827 回答