簡體   English   中英

PHP語法關於if語句的幫助

[英]PHP syntax help on 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之后添加了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!';
}

我以更容易理解的方式重新編寫了代碼(盡管可能不是最短的方式):

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

它最終以這種方式工作。 如果可以縮短操作時間,請隨時將其發布在這里,否則,謝謝您的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM