if语句的PHP语法帮​​助

时间:2012-11-05 06:13:00

标签: php mysql if-statement

我正在尝试从我正在尝试使用MySQL的方法中确定正确的语法。我基本上说如果一个表的某一行的某一列中的值等于某些会话变量,我想要回显信息。

我有一张包含subjectdescriptionuser的表格。通过获取当前用户的名字和姓氏并将其插入User下的表格来设置user。这可以通过以下代码完成:

$sql="INSERT INTO tbl_name (subject, description, user)
VALUES
('$_POST[subject]','$_POST[description]','$_SESSION[firstname] $_SESSION[lastname]')";

然后,一旦我将这些数据调回,我基本上允许用户删除他们自己提交的内容。对我来说,第一步是能够在表格中显示它。我相信这只是语法错误,但我现在对自己的设置方式感到困惑:

$sql = "SELECT * FROM tbl_name ORDER BY subject, description 
  LIMIT {$startpoint},{$limit}";
$result = $mysqli->query($sql);
$num_rows = mysqli_num_rows($result);

if($num_rows>0){
$field_num = $mysqli->field_count;
echo "<h1>HERE ARE SOME EXAMPLES:</h1>";
echo "<table border='0'><tr>";

for($i=0; $i<$fields_num; $i++)
    {
        $field = mysql_fetch_field($result);
        echo "<td>{$field->subject}</td>";
        echo "<td>{$field->description}</td>";
        echo "<td>{$field->user}</td>";
        if('$field->user' == '$_SESSION[firstname] $_SESSION[lastname]'){
          echo '<td>You can delete this</td>';
        }
    }

我认为$field->user等于$_SESSION[firstname] $_SESSION[lastname],因为这是最初提交到表格的方式(没有'。'进行连接)。

任何帮助将不胜感激。谢谢!

修改

这是我的表输出代码的结果。结果实际上是用$ cell显示而不是在for循环中显示我认为。我在之后添加了if语句,但它似乎没有认出echo "<td>".$field->user."</td>";,这让我觉得这就是问题所在。我想做的是能够在“echo {$ field-&gt; user}”之后立即添加if语句;以保持代码清洁。我想我已经彻底迷惑了自己:

if($num_rows>0){
$field_num = $mysqli->field_count;
echo "<h1>HERE ARE SOME JOBS:</h1>";
echo "<table border='0'><tr>";

for($i=0; $i<$fields_num; $i++)
{
    $field = mysql_fetch_field($result);
    echo "<td>{$field->subject}</td>";
    echo "<td>{$field->description}</td>";
    echo "<td>{$field->user}</td>";

    if($field->user == $_SESSION[firstname]." ".$_SESSION[lastname]){
    echo '<td>You can delete this</td>';
    }
    else{
    echo "<td>".$field->user."</td>";
    echo "<td>".$_SESSION[firstname]." ".$_SESSION[lastname]."</td>";
    }
}

echo "</tr>\n";
while($row = mysqli_fetch_row($result))
{
    echo"<tr>";

    foreach($row as $cell)
        echo "<td>$cell</td>";
        echo "</tr>\n";
}
mysqli_free_result($result);
}
else{
echo 'There are no jobs!';
}

1 个答案:

答案 0 :(得分:1)

我以一种让我更容易理解的方式重新编写代码(尽管可能不是最简单的方法):

while($row = mysqli_fetch_array($result))
{
    echo"<tr>";
    echo"<td>".$row['subject']."</td>";
    echo"<td>".$row['description']."</td>";
    echo"<td>".$row['user']."</td>";
    if($row['user'] == $_SESSION['firstname']." ".$_SESSION['lastname']){
    echo"<td>You can delete this</td>";
    }
    else{
    echo"<td>Code didn't work</td>";
    }
    echo "</tr>\n";
}

它最终以这种方式工作。如果有更短的方法,请随时在此处发布,否则感谢您的帮助!