Простой mysql_query с ошибкой предложения WHERE - PullRequest
1 голос
/ 05 февраля 2011

Вот мой код:

<p>Select application status to view.</p>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <select name="type" style="width:100px;">
        <option name="New">New</option>
        <option name="Approved">Approved</option>
        <option name="Denied">Denied</option>
        <option name="In Training">In Training</option>
        <option name="Passed">Passed</option>
        <option name="Retrained">Retrained</option>
        <option name="Failed">Failed</option>
        <option name="Placed">Placed</option>
    </select>
    <input type="submit" value="Go" />
</form>

<?php if (!isset($_POST['type'])): 
    $newapps = mysql_query('SELECT aid, status, Day, Dte, Month, Year, email, Character_Name FROM applications WHERE status LIKE "New"'); ?>

    <table>
        <tr>
            <td><strong>ID</strong></td>
            <td><strong>Status</strong></td>
            <td><strong>Date Submitted</strong></td>
            <td><strong>E-mail</strong></td>
            <td><strong>Character Name</strong></td>
        </tr>
        <?php while ($newapp = mysql_fetch_array($newapps))
            {
            $aid = $newapp['aid'];
            $status = $newapp['status'];
            $day = $newapp['Day'];
            $date = $newapp['Dte'];
            $month = $newapp['Month'];
            $year = $newapp['Year'];
            $email = $newapp['email'];
            $name = $newapp['Character_Name'];
            echo "<tr><td>$aid</td><td>$status</td><td>$day, $month $date $year</td><td>$email</td><td>$name</td></tr>\n";
            }
        ?>
    </table>

<?php else: 
    $query1 = "SELECT aid, status, Day, Dte, Month, Year, email, Character_Name FROM applications WHERE status LIKE '{$_POST['type']}'";
    $result = mysql_query('$query1') or die(mysql_error()); 
?>

    <table>
        <tr>
            <td><strong>ID</strong></td>
            <td><strong>Status</strong></td>
            <td><strong>Date Submitted</strong></td>
            <td><strong>E-mail</strong></td>
            <td><strong>Character Name</strong></td>
        </tr>
        <?php while ($applist = mysql_fetch_array($result))
            {
            $aid = $applist['aid'];
            $status = $applist['status'];
            $day = $applist['Day'];
            $date = $applist['Dte'];
            $month = $applist['Month'];
            $year = $applist['Year'];
            $email = $applist['email'];
            $name = $applist['Character_Name'];
            echo "<tr><td>$aid</td><td>$status</td><td>$day, $month $date $year</td><td>$email</td><td>$name</td></tr>\n";
            }
        ?>
    </table>    

<?php endif; ?>

Когда я загружаю страницу, она ДЕЙСТВИТЕЛЬНО вытягивает «Новые» приложения.Но когда я запускаю запрос для проверки, например, Утвержденных приложений, я получаю эту ошибку:

В синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '$ query1' в строке 1

Есть идеи, что мне не хватает?

Ответы [ 2 ]

3 голосов
/ 05 февраля 2011

Вы заключаете $query в одинарные кавычки, в результате чего его воспринимают буквально.

Используйте двойные кавычки или вообще ничего:

mysql_query($query1)
0 голосов
/ 05 февраля 2011

Попробуйте mysql_query ("{$ query1}").

Используйте двойные кавычки

...