围绕mysql_query,SELECT / FROM / WHERE,mysql_fetch_assoc / array的PHP混乱

时间:2013-06-20 02:13:32

标签: php mysql sql

我对PHP比较陌生,所以如果我听起来像我不知道我在做什么,那么请耐心等待。因为这与事实并不相符。此外,我知道我的代码可能看起来很荒谬,或者可能简化,或者有更简单的方法,我对此并不感兴趣。我想让它工作,我会从那里简化它。不管怎么说..

我正在构建一个访问名为" poems"在数据库中。页面的一侧是诗歌从数据库调出后显示的实际位置,另一侧(我们称之为" nav")是来自数据库的诗歌列表。该表有三个特定字段:order,Title和Poem。

导航方面正确地提取所有信息;它读取顺序和标题,并将它们格式化为一个链接,该链接通过标题读取并指向poems.php /?p =#,其中#将是任何' order'是表格中的特定行。

实际内容方面并不那么幸运。它应该使用$ _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>`

&#39; echo $ page&#39;只是在那里,所以我看到某种结果,直到它正常工作。当我在表格中的两个可用条目之间点击时,我得到1或2,但那就是它。打印$ title和print $ poem什么也没给我。救命啊!

2 个答案:

答案 0 :(得分:1)

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

SELECT * FROM poems WHERE `order`='$page'

答案 1 :(得分:0)

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

$qry = mysql_query("SELECT * FROM poems WHERE order ='". $page. "'");