Я создаю скрипт для отображения пользователей и внесения изменений в их привилегии администратора.
Вот код:
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>'; }
Затем переменная $ insert используется позже в html для генерации всех строк таблицы с пользовательскими данными.
Проблема в том, что при запуске скрипта появляется это сообщение
Notice: Undefined variable: insert in C:\wamp\www\...\user_edit.php on line 33
Сценарий работает корректно, хотя только это сообщение отображается в середине страницы.
Когда я беру. выключение из строки $ insert. = ', сообщение исчезает, но сценарий отображает только одного пользователя в таблице.
Есть ли причина, почему это может произойти? И есть ли решение моей проблемы, поэтому я могу заставить скрипт работать, и сообщение не появляется?
Просто установите переменную в пустую строку, прежде чем использовать ее. Вы не можете использовать .=
переменной, которая еще не существует:
$insert = ""; while($row= mysql_fetch_assoc($query)) { // ... $insert .= '<tr>'; // ...