我试图从我试图用 MySQL 做的事情中确定正确的语法。我基本上是说,如果表中某一行的某个列中的值等于某些会话变量,我想回显信息。
我有一张桌子,里面有subject
,description
和user
。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->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!';
}