0

MySQLでやろうとしていることから正しい構文を決定しようとしています。基本的に、テーブルの行の特定の列の値がいくつかのセッション変数と等しい場合、情報をエコーアウトしたいと言っています。

、、のテーブルがsubjectありdescriptionますuserUser現在のユーザーの名前と名前を取得し、それを。の下のテーブルに挿入することによって設定されます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](連結の「。」なし)。

どんな助けでもいただければ幸いです。ありがとう!

編集

これが私のテーブル出力コードの結果です。結果は、私が信じているforループ内からではなく、実際には$cellで表示されています。echo "<td>".$field->user."</td>";後にifステートメントを追加しましたが、それが問題の原因であると私に思わせるものを認識していないようです。私がやりたいのは、 `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 に答える