2012-05-15 2 views
0

Я создавал скрипт для отображения пользователей и внесения изменений в их привилегии администратора.Примечание: Неопределенная переменная при конкатенации

Вот код:

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. = ', сообщение исчезает, но сценарий отображает только одного пользователя в таблице.

Есть ли причина, почему это может произойти? И есть ли решение моей проблемы, поэтому я могу заставить скрипт работать, и сообщение не появляется?

+1

Попробуйте добавить, прямо перед циклом, простое объявление переменной, установив его пустым. например '$ Вкладыш = "";'. –

+0

Не ставьте te на $ email, но $ row. –

+0

Как в "$ email = $ row ['email'];". Сделать это «$ email = (isset ($ row ['email']) && empty ($ row ['email'])? $ Row ['email']:« Нет электронной почты »); –

ответ

10

Просто установите переменную в пустую строку, прежде чем использовать ее. Вы не можете использовать .= на переменную, которая еще не существует:

$insert = ""; 
while($row= mysql_fetch_assoc($query)) { 
    // ... 
    $insert .= '<tr>'; 
    // ... 
+2

@ Давид прав, это должно быть сделано до петли. – bfavaretto

+0

Перед циклом! Это тоже мое недостающее звено. –

Смежные вопросы