Я новичок в этом и написал код ниже, чтобы получить данные пользователя из базы данных MySQL и отобразить его в форме для редактирования и сохранения. Проблема в том, что она не работает. Любая помощь будет оценена.
<html> <head> <title> Delegate edit form</title> </head> <body> Delegate update form <p> <?php $usernm = "root"; $passwd = ""; $host = "localhost"; $database = "swift"; //$Name=$_POST['Name']; //$Username=$_POST['User_name']; //$Password=$_POST['Password']; mysql_connect($host,$usernm,$passwd); mysql_select_db($database); $sql = "SELECT * FROM usermaster WHERE User_name='$Username'"; $result = mysql_query($sql) or die(mysql_error()); while ($row = mysql_fetch_array($result)) { $Name = $row['Name']; $Username = $row['User_name']; $Password = $row['User_password']; } ?> <form action="Delegate_update.php" method="post"> Name <input type="text" name= "Name" value= "<?php echo $row ['Name']; ?> "size=10> Username <input type="text" name= "Username" value= "<?php echo $row ['Username']; ?> "size=10> Password <input type="text" name= "Password" value= "<?php echo $row ['Password']; ?>" size=17> <input type="submit" name= "submit" value="Update"> </form> </body> </html>
Играйте вокруг этого фрагмента кода. Сосредоточьтесь на концепции, отредактируйте там, где это необходимо, чтобы она могла
<html> <head> <title> Delegate edit form</title> </head> <body> Delegate update form </p> <meta name="viewport" content="width=device-width; initial-scale=1.0"> <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon" /> <link href='http://fonts.googleapis.com/css?family=Droid+Serif|Ubuntu' rel='stylesheet' type='text/css'> <link rel="stylesheet" href="css/normalize.css"> <link rel="stylesheet" href="js/flexslider/flexslider.css" /> <link rel="stylesheet" href="css/basic-style.css"> <script src="js/libs/modernizr-2.6.2.min.js"></script> </head> <body id="home"> <header class="wrapper clearfix"> <nav id="topnav" role="navigation"> <div class="menu-toggle">Menu</div> <ul class="srt-menu" id="menu-main-navigation"> <li><a href="Swift_Landing.html">Home page</a></li> </header> </section> <style> form label { display: inline-block; width: 100px; font-weight: bold; } </style> </ul> <?php session_start(); $usernm="root"; $passwd=""; $host="localhost"; $database="swift"; $Username=$_SESSION['myssession']; mysql_connect($host,$usernm,$passwd); mysql_select_db($database); $sql = "SELECT * FROM usermaster WHERE User_name='$Username'"; $result = mysql_query ($sql) or die (mysql_error ()); while ($row = mysql_fetch_array ($result)){ ?> <form action="Delegate_update.php" method="post"> Name <input type="text" name="Namex" value="<?php echo $row ['Name']; ?> " size=10> Username <input type="text" name="Username" value="<?php echo $row ['User_name']; ?> " size=10> Password <input type="text" name="Password" value="<?php echo $row ['User_password']; ?>" size=17> <input type="submit" name="submit" value="Update"> </form> <?php } ?> </p> </body> </html>
<form action="Delegate_update.php" method="post"> Name <input type="text" name= "Name" value= "<?php echo $row['Name']; ?> "size=10> Username <input type="text" name= "Username" value= "<?php echo $row['Username']; ?> "size=10> Password <input type="text" name= "Password" value= "<?php echo $row['Password']; ?>" size=17> <input type="submit" name= "submit" value="Update"> </form>
В первую очередь вы не закрыли свою форму открытия, плюс ваш код очень грязный. Я не буду вдаваться в «использование pdo или mysqli-операторов вместо mysql», которые вам нужно узнать самостоятельно. Кроме того, вы открываете и закрываете php-тег под ним, не знаете, что там нужно. Что-то еще в том, что ваш код ссылается на внешнюю страницу, которую вы не публиковали, поэтому, если что-то не работает там, может быть удобно разместить ее тоже.
Также обратите внимание, что у вас были пробелы между переменными массива $ row в форме. Вы должны связать их вместе, удалив пространство (см. Отредактированный раздел от меня). PHP не прощает, когда дело доходит до этих ошибок.
Затем ваш HTML. Я взял на себя смелость исправить это тоже
<html> <head> <title> Delegate edit form</title> </head> <body> <p>Delegate update form</p> <?php $usernm="root"; $passwd=""; $host="localhost"; $database="swift"; mysql_connect($host,$usernm,$passwd); mysql_select_db($database); $sql = "SELECT * FROM usermaster WHERE User_name='".$Username."'"; // Please look at this too. $result = mysql_query($sql) or die (mysql_error()); // dont put spaces in between it, else your code wont recognize it the query that needs to be executed while ($row = mysql_fetch_array($result)){ // here too, you put a space between it $Name=$row['Name']; $Username=$row['User_name']; $Password=$row['User_password']; } ?>
Также старайтесь быть конкретными. «Это не работает» не очень помогает нам, особенно полезен конкретный тип ошибки, плюс любое указание на то, что должен делать код (ну, это было явно очевидно здесь, так как здесь зарегистрирован вход / регистрация, но для более крупных фрагментов кода это всегда должно быть объяснено)
В любом случае, добро пожаловать в переполнение стека
<form action="Delegate_update.php" method="post"> Name <input type="text" name= "Name" value= "<?php echo $row['Name']; ?> "size=10> Username <input type="text" name= "Username" value= "<?php echo $row['Username']; ?> "size=10> Password <input type="text" name= "Password" value= "<?php echo $row['Password']; ?>" size=17> <input type="submit" name= "submit" value="Update"> </form>
взгляните на это
попробуйте эти
<form action="Delegate_update.php" method="post"> Name <input type="text" name= "Name" value= "<?php echo $row['Name']; ?> "size=10> Username <input type="text" name= "User_name" value= "<?php echo $row['User_name']; ?> "size=10> Password <input type="text" name= "User_password" value= "<?php echo $row['User_password']; ?>" size=17> <input type="submit" name= "submit" value="Update"> </form>