这是我的代码,我在HTML中使用PHP,这个代码在一天前工作正常,但突然它停止工作,并说未定义的变量'数据'在第25,27,29行
<?php
require_once "databases.php";
if(isset($_POST['check']))
{
$name = $_POST['fullname'];
$city = $_POST['city'];
$country = $_POST['country'];
$db = new databases();
$db->connection("localhost","root","","like_project");
$query = "UPDATE profile SET name='$name', city='$city', country='$country' WHERE profileID=2";
$db->query($query);
$data=$db->fetchRows("SELECT * FROM profile");
//print_r($data);
}
?>
<HTML>
<Head><title>Profile</title></Head>
<Body>
<Center>
<Form action='' method='POST'>
<b>Name<br>
<input type = 'text' name = 'fullname' value= "<?php echo $data[0]['name']; ?>"/><br>
City<br>
<input type = 'text' name = 'city' value= "<?php echo $data[0]['city']; ?>" /><br>
Country<br>
<input type = 'text' name = 'country' value= "<?php echo $data[0]['country']; ?> "/><br>
Profile Picture<br>
<input type = 'file' name 'dp' id='dp'/><br>
Cover<br>
<input type = 'file' name 'cover'/><br>
<input type ='submit' value = 'Update' name = 'check'/>
</Form>
</Center>
</Body>
</HTML>
答案 0 :(得分:1)
我的想法是......
$data=$db->fetchRows("SELECT * FROM profile");
它获取的数据超过一行。 在更新特定配置文件ID的数据时,为什么要从配置文件表中选择所有数据。当你在表单中显示它时,你为1个用户显示它,然后为什么你为所有人提取数据。
如果你想要,那么你需要输入LOOP来逐行获取细节。
另外,请写一下
<?php if(isset($data[0]['name'])){ echo $data[0]['name'];} else {echo '';} ?>
取代
<?php echo $data[0]['name']; ?>
以前,它可能适合你,因为。你可能在ur db中只有1行用于获取。 但是,现在你有多个。
答案 1 :(得分:1)
$sql = fetchArray"select * From Profile"
foreach($sql as $row){
$row[0] => mean first Value of array
or
$row['name'];
or
$row->name;
}