0

フォーラムの作成に問題があります。誰か助けてください。

ユーザーが投稿を作成できる時点で、投稿のタイトルはページの下にリストされ、ユーザーはタイトルのリンクをクリックして read_post.php に移動できると想定され、これによりユーザーは投稿が行われている別のページに移動するはずです。コンテンツを表示できます。フォーラムの投稿 ID をエコーし​​てこれを実行しようとしていますが、機能しないようで、代わりに次のエラーが発生します。

Database query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3

どこが間違っているのか教えてください。

ここに私のSQL関数があります:

function read_forum() {
            global $connection;
            global $forum_id;
            $query = "SELECT *
                        FROM ptb_forum, ptb_profiles
                        WHERE ptb_forum.id = $forum_id ";
            $forum_set = mysql_query($query, $connection);
            confirm_query($forum_set);
            return $forum_set;
        }  

これは、ユーザーを read_post.php に導くリンク コードです。これは、フォーラム ID をエコーし​​、個々の投稿のコンテンツを表示することを想定しています。

<?
$forum_set = get_forum();
while ($forum = mysql_fetch_array($forum_set)) {
?>


            <div class="forumcase" id="forumcase">
                 <div class="pend-forum-content">
                 <?php echo "<strong><a href=\"read_post.php?post={$forum_id['id']}\">{$forum['title']}</a></strong> - Posted by {$user['first_name']}"; ?>
                 </div>



here's my code for read_post.php:

    <?php
        $page_title = "Read Post";
        include('includes/header.php'); 
        include ('includes/mod_login/login_form2.php');  ?>

        <?php
        confirm_logged_in();



        if (isset ($_GET['frm'])) {
        $forum_id = $_GET['frm'];
    }

    ?>

    <?php include('includes/copyrightbar.php'); ?>
    <div class="modtitle">
    <div class="modtitle-text">Messages Between <?php echo "{$forum['display_name']}"; ?> & You</div>
    </div>

    <div class="modcontent57">


    <br /><br /><br/><br/>

    <div class="forum">
    <div class="forum-pic"><?php echo "<img src=\"data/photos/{$_SESSION['user_id']}/_default.jpg\" width=\"100\" height=\"100\" border=\"0\" align=\"right\" class=\"img-with-border-forum\" />";?>
    </div>

    <div class="message-links">
    <strong><a href="forum.php"><< Back to Forum</a>
    </div> 
    <br /><br /><br/><br/>
    <?php 

        $datesent1 = $inbox['date_sent'];  ?>

    <?php
            $forum_set = read_forum();
            while ($forum = mysql_fetch_array($forum_set)) {
            $prof_photo = "data/photos/{$message['user_id']}/_default.jpg";

            $result = mysql_query("UPDATE ptb_forum SET ptb_forum.read_forum='1' WHERE ptb_forum.id='$forum_id'") 
    or die(mysql_error()); 

    ?>
    <div class="message-date">
    <?php echo "".date('D M jS, Y  -  g:ia', strtotime($message['date_sent'])).""; ?></div>



    <div class="img-with-border-msg-read"><?php echo "<a href=\"profile.php?id={$forum['from_user_id']}\"><img width=\"60px\" height=\"60px\" src=\"{$prof_photo}\"></a><br />"; ?></div>

    <div class="conversation-text">
    <?php echo "<i>Conversations between you and<a href=\"profile.php?id={$forum['from_user_id']}\"> </i>{$forum['display_name']}.</a><br /> "; ?></div>


    <div class="message-content">  
    <?php echo "<strong>Message Subject: </strong><i>{$forum['subject']}</i>"; ?>
    <br/>
    <br/>
    <br/>
    <br/>

    <?php echo  "<strong>Message:<br/></strong></br ><i>{$forum['content']}</i>"; ?>
    </div>


    <div class="reply-box">
    <? include ('message_reply.php'); ?>    
      </div>




    <?php
    }
    ?>
    <br/>
    <br/>
    <br/>

          </div>
          </div>

    <?php include('includes/footer.php'); ?>
    </div>
4

1 に答える 1

0

クエリにエラーがあります...パラメータが引用符で囲まれていません...

 $query = "SELECT *
     FROM ptb_forum, ptb_profiles
     WHERE ptb_forum.id = '$forum_id'";

mysql_ただし、関数ファミリーの使用は控えることをお勧めします。これらは非推奨であり、将来のリリースでPHPから削除される予定です。MySQLiまたはPDOを使用してパラメーター化されたクエリを使用する必要があります。

また、global悪です。10年間のPHPプログラミングでこれを使用する必要はありませんでした。あなたもそうすべきではありません。

于 2013-02-05T15:35:48.997 に答える