0

我试图从我试图用 MySQL 做的事情中确定正确的语法。我基本上是说,如果表中某一行的某个列中的值等于某些会话变量,我想回显信息。

我有一张桌子,里面有subject,descriptionuserUser通过获取当前用户的名字和姓氏并将其插入到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->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!';
}
4

1 回答 1

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";
}

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

于 2012-11-05T07:01:08.120 回答