- 締切済み
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>'; } } ?>
- みんなの回答 (2)
- 専門家の回答