Я создавал скрипт для отображения пользователей и внесения изменений в их привилегии администратора.Примечание: Неопределенная переменная при конкатенации
Вот код:
while ($row= mysql_fetch_assoc($query)) {
$uname= $row['username'];
$fname= $row['first_name'];
$lname= $row['last_name'];
$email= $row['email'];
$admin= $row['admin'];
$insert .= '<tr>
<td>' .$uname. '</td>
<td>' .$fname. '</td>
<td>' .$lname. '</td>
<td>' .((isset($email)) ? $email:'No email set.'). '</td>
<td>'.(($admin == 'y') ? 'Admin':'User').'</td>
<td><input type="checkbox" name="' .$uname. '" value="'.(($admin == 'y')?'n':'y').'"/>'.(($admin == 'y')?'Make a user':'Make an admin user').'</tr>';
}
переменные $ Вкладыш затем используются позже в HTML, чтобы создать все строки таблицы с данными пользователя.
Проблема заключается в том, что при запуске сценария появляется это сообщение
Notice: Undefined variable: insert in C:\wamp\www\...\user_edit.php on line 33
сценарий все еще работает правильно, хотя только это сообщение с указанием в середине страницы.
Когда я беру. выключение из строки $ insert. = ', сообщение исчезает, но сценарий отображает только одного пользователя в таблице.
Есть ли причина, почему это может произойти? И есть ли решение моей проблемы, поэтому я могу заставить скрипт работать, и сообщение не появляется?
Попробуйте добавить, прямо перед циклом, простое объявление переменной, установив его пустым. например '$ Вкладыш = "";'. –
Не ставьте te на $ email, но $ row. –
Как в "$ email = $ row ['email'];". Сделать это «$ email = (isset ($ row ['email']) && empty ($ row ['email'])? $ Row ['email']:« Нет электронной почты »); –