2014-12-15 2 views
-5

Здравствуйте, у меня есть форма редактирования, но я получаю сообщение об ошибке, которое я не могу решить, можете ли вы помочь мне исправить это? Ошибка в том, что я ge от первого кода, и это « Примечание: Неопределенный индекс: имя пользователя в C: \ xampp \ htdocs \ industrial \ CVTool \ cv \ edit_personal_information.php в строке 5" Код для формы это ниже ..Редактировать формы PHP MySQL

<?php 
mysql_connect('localhost', 'root', 'password') or die(mysql_error()); 
mysql_select_db("cvtool") or die(mysql_error()); 

$username = $_GET['username']; 
$query = mysql_query("SELECT * FROM personal_information WHERE username = '$username'") or die(mysql_error()); 

if(mysql_num_rows($query)>=1){ 
    while($row = mysql_fetch_array($query)) { 
     $name = $row['name']; 
     $email = $row['email']; 
     $city = $row['city']; 
     $phone = $row['phone']; 
    } 
?> 
<form action="update.php" method="post"> 
<input type="hidden" name="username" value="<?=$username;?>"> 
Name: <input type="text" name="name" value="<?=$name?>"><br> 
Email: <input type="text" name="email" value="<?=$email?>"><br> 
City: <input type="text" name="city" value="<?=$city?>"><br> 
Phone: <input type="text" name="city" value="<?=$phone?>"><br> 
<input type="Submit" name="Update!"> 
</form> 
<?php 
}else{ 
    echo 'No entry found. <a href="javascript:history.back()">Go back</a>'; 
} 
?> 

код для обновления является ниже ...

<?php 
    mysql_connect('localhost', 'root', 'smogi') or die(mysql_error()); 
    mysql_select_db("cvtool") or die(mysql_error()); 

    $username = $_POST["username"]; 

    $name = mysql_real_escape_string($_POST["name"]); 
    $email = mysql_real_escape_string($_POST["email"]); 
    $city = mysql_real_escape_string($_POST["city"]); 
    $phone = mysql_real_escape_string($_POST["phone"]); 


    $query="UPDATE personal_information 
      SET name = '$name', email = '$email', phone = '$phone' 
      WHERE username='$username'"; 


mysql_query($query)or die(mysql_error()); 
if(mysql_affected_rows()>=1){ 
    echo "<p>($username) Record Updated<p>"; }else{ 
    echo "<p>($username) Not Updated<p>"; } ?> 
+0

Пожалуйста, [не используйте 'mysql_ *' функции] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php), они больше не являются поддерживаются и [официально устарели] (https://wiki.php.net/rfc/mysql_deprecation). Узнайте о [подготовленных заявлениях] (http://en.wikipedia.org/wiki/Prepared_statement) и используйте [PDO] (http://us1.php.net/pdo) или [MySQLi] (http: // us1.php.net/mysqli). –

+0

@JayBlanchard Ваш комментарий не помогает мне решить мою проблему, спасибо tho –

+0

Возможный дубликат [PHP: «Примечание: неопределенная переменная» и «Примечание: неопределенный индекс»] (http://stackoverflow.com/questions/4261133/ php-notice-undefined-variable-and-notice-undefined-index) – andrewsi

ответ

1

Это происходит потому, что при первой загрузке страницы, нет $_GET["username"] переменной. Вы должны проверить его с условием:

if (!empty($_GET["username"])) { 
    //Do code here 
} 

Это будет иметь значение только при отправке формы.

+0

Я сделал то, что сказал, но теперь он дает «запись не найдена», но в моей базе данных я сохранил данные с этим именем пользователя, в котором я вошел. –

+0

возможно, данное имя пользователя не находится в db? – vaso123

+0

Это странная часть моей проблемы, что я вошел в систему. Я вижу, что мое имя пользователя находится в определенном столбце таблицы, но оно все равно дает мне это уведомление !!!! –

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