-1

私は PHP に比較的慣れていないので、自分が何をしているのかわからないように聞こえる場合は、ご容赦ください。それは真実からそう遠くないからです。また、私のコードがばかげているように見えるか、単純化される可能性があること、または他にもっと簡単な方法があることを認識していますが、まだ興味がありません。私はそれを機能させたいので、そこから単純化します。いずれかの方法..

データベースの「poems」というテーブルにアクセスするページを作成しています。ページの片面はデータベースから呼び出された詩が表示される実際の場所で、もう片面 (「ナビゲーション」と呼びます) はデータベースからの詩のリストです。このテーブルには、order、Title、および Poem という 3 つの特定のフィールドがあります。

ナビ側はすべての情報を適切に引き出します。order と Title を読み取り、それらを Title で読み取り、poems.php/?p=# に誘導するリンクにフォーマットします。ここで、# はテーブルの特定の行の「順序」です。

実際のコンテンツ側はそれほど幸運ではありません。URL から # を取得するために $_GET を使用することになっています。その情報を使用して、タイトルと詩を引き出して、2 つの内容を表示しようとしています。単純に聞こえますが、非常に長い間、「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」はちょうどそこにあるので、適切に機能するまで何らかの結果が表示されます。テーブルで使用可能な 2 つのエントリの間をクリックすると、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 に答える