phpのif文について
下記の表現をした際に、必ずif文がelseの方に流れてしまいます。
そこで条件式をいろいろ書き換え試したところ、
if($_SESSION['user_id'] = $employee_id)
↓
if($_SESSION['user_id'] == $employee_id)
に書き換えた際にだけ、elseに流れず、
==の関係が成り立ちます。
その際に変更しているのは、条件式だけで他のコードを変更していません。
どのように変更すれば、正しく条件式が機能しますか?
<?php
$sql = "SELECT * FROM thread_detail WHERE thread_id = $id";
$date = mysql_query($sql,$link);
$logs = array();
while ($post = mysql_fetch_assoc($date)) {
$logs[] =
array($post['thread_detail_id'], $post['parent_thread_detail'], '<a href="thread.php?id='.$post['thread_id'].'&res='.$post['thread_detail_id'].'">'.$post['post_date'],$post['employee_id'].'</a>', $post['body'],'<a href="thread.php?id='.$post['thread_id'].'&edit='.$post['thread_detail_id'].'">編集</a>', '<a href="remove_thread.php?id='.$post['thread_id'].'&delete='.$post['thread_detail_id'].'"'.'onclick="return confirm(\'本当に削除しますか?\');">削除</a>');
}
foreach ($logs as list($no, $oya, $create_date, $employee_id, $kiji, $edit, $delete)) {
if ($oya > 0) { continue; }
if($_SESSION['user_id'] == $employee_id) {
print $create_date. $employee_id .'<br>'. $kiji . $edit . $delete . '<br>';
} else {
print $create_date. $employee_id .'<br>'. $kiji . '<br>';
}
listchild($logs, $no);
}
function listchild($logs, $parent) {
$ct = 0;
foreach ($logs as list($no, $oya, $create_date, $employee_id, $kiji, $edit, $delete)) {
if ($oya !== $parent ) { continue; }
if ($ct++ == 0) { print '<ul>'; }
if($_SESSION['user_id'] == $employee_id) {
print '<li>' .$create_date.$employee_id.'<br>'. $kiji . $edit . $delete . '<br>'.'<br>' . '</li>';
} else {
print '<li>' .$create_date.$employee_id.'<br>'. $kiji . '<br>'.'<br>' . '</li>';
}
listchild($logs, $no);
}
if ($ct > 0) { print '</ul>'; }
}
?>
お礼
ご回答ありがとうございます。 そこでしたか! =は代入、==は同じという基本的な部分を失念していました。