Ошибка идентификатора ресурса № 6 в PHP с MySQL - PullRequest
0 голосов
/ 08 марта 2012

Я для системы опросов, которую я делаю, этот код показывает пользователю список вопросов, из которых они могут выбрать:

        <div class="main_questions">
            <p class="style1 style2"><strong>Select Your Question</strong></p>

<p class="style1">
            <form action="vote_list.php" method="post" name="form1" class="style1">
            <?php
                        $sql = "SELECT DISTINCT (question_tba) FROM question ORDER BY answer_id DESC";
                        $result = mysql_query($sql);
                        while($row = mysql_fetch_array($result)){
                            ?>
                            <p>
                                <?php echo $row['question_tba']; ?>
                                <input type="radio" name="questions" value="<?php echo $row['question_tba']; ?>">

                            </p>

                            <?php
                        }      
            ?>
            <input type="submit" name="submit" value="Vote">
            </p>
        </div>

Этот код должен затем разместить выбранный вопрос на этой странице, которыйпозволяет им голосовать:

<?php

include('core/initialise.inc.php');

$q = $_POST['question_tba'];

if (isset($_GET['vote'], $_GET['id'])){
    add_vote($_GET['id'], $_GET['vote'], $q);
    echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"0; URL=vote_logged.php\">";
}

?>

</div>
<div class="main_questions">
    <p class="style1 style2"><strong>Place Your Vote!</strong></p><?php
        foreach (get_answers($q) as $id => $answer){
            ?>
            <p>
            <?php echo $answer; ?>
            <a href="?vote=up&amp;id=<?php echo $id; ?>">Vote</a>
        </p>
        <?php
        }

        ?>
</div>

Затем, когда они нажимают на ответ для голосования по функциям на этой странице, следует увеличить голосование за выбранные ответы на 1, используя следующие функции:

<?php

function get_answers($q){
    $q = $q;
    $sql = "SELECT answer_id, answer FROM question WHERE question_tba = '$q'";
    $result = mysql_query($sql);

    echo "$result";

    $answers = array();
    while (($row = mysql_fetch_assoc($result)) or die(mysql_error()))
    {                                                                         
        $answers[$row['answer_id']] = $row['answer'];
    }

    return $answers;
}

function add_vote($answer_id, $vote, $q2){
    $q2 = $q2;
    $answer_id = (int)$answer_id;
    $vote = '+';

    $sql = "UPDATE question SET answer_votes = answer_votes $vote 1 WHERE question_tba = $q2 AND answer_id = $answer_id";

    mysql_query($sql);

}

?>

Однако моя проблема в том, что, когда я нажимаю на вопрос, за который я хотел бы проголосовать, вместо того, чтобы отображать ответы, по которым я могу выбрать голосование, он просто отображает идентификатор ресурса № 6.Может кто-нибудь сказать мне, что не так с моим кодом?

Ответы [ 2 ]

3 голосов
/ 08 марта 2012

$result - это ресурс, возвращаемый вашим вызовом mysql_query(), а не фактический объект / массив строк. Точно так же, как вы используете mysql_fetch_assoc() в других областях вашего кода для извлечения данных, вам нужно будет сделать это до вашего echo, если вы хотите отобразить данные.

0 голосов
/ 21 марта 2012

Хорошо, разберись с этим. Оказывается, при публикации значения переключателя вы должны использовать довольно простое решение name = "" вместо value = "".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...