1

データベースに 1 または 2 のいずれかを含むユーザー レベル フィールドがあります。入力したユーザー名にレベル 2 が含まれる行を取得する必要があります。コードは次のとおりです。

<?php

    $con=mysql_connect("localhost","root","");
    mysql_select_db("nnx",$con);

    $tbl=mysql_query("SELECT * FROM order");
    while($row=mysql_fetch_array($tbl))
    {

       if (($row['level']=='2')&&($row['username']==$_POST['user']))
       {
            echo $row['username']."".$row['garlique']."".$row['rightcee'];
        echo $row['oleia']."<br />";
       }
       else
       {
        echo $row['username']."".$row['garlique']."".$row['rightcee'];
        echo .$row['oleia']."<br />";
       }
        }
?>

テストしようとすると、エラー"unexpected $end"が表示されました。私のコードで間違っていると思うのは、次の場合の検証です.. ($row['level']=='2').. この種の問題を修正する方法がわかりません。PHP初心者なので、教えていただけると助かります。:)

4

3 に答える 3

2

提案したいと思います。前述のように、レベル 2 である特定のユーザー名の行を取得することが目標である場合、クエリはすべての作業を行うことができます。

// Put the username in a variable, making sure it's safe for SQL by escaping it
$username = mysql_real_escape_string($_POST['user']);

// Grab the row from the table, expecting only a single result
$tbl = mysql_query("SELECT * FROM `order` WHERE `username` = '$username' AND `level` = '2' LIMIT 1");

// Set your row variables
$rows = mysql_fetch_array($tbl);
$row  = $rows[0];

if (!$row)
{
    // Either not a valid username or the username isn't level 2
}
else
{
    // Valid row
}
于 2012-10-04T17:26:13.330 に答える
2

whileでループを閉じます}。構文エラー。

于 2012-10-04T17:25:52.293 に答える
0

最後の } を忘れた

<?php
    $con=mysql_connect("localhost","root","");
    mysql_select_db("nnx",$con);

    $tbl=mysql_query("SELECT * FROM order");
    while($row=mysql_fetch_array($tbl))
    {

        if (($row['level']=='2')&&($row['username']==$_POST['user']))
        {
            echo $row['username']."".$row['garlique']."".$row['rightcee']."".$row['oleia'];
            echo "<br />";
        } else {
            echo $row['username']."".$row['garlique']."".$row['rightcee']."".$row['oleia'];
            echo "<br />";
        }
    } // PAY ATTENTION TO THIS!!
?>
于 2012-10-04T17:26:29.820 に答える