未定义的可变数据

时间:2014-09-01 06:49:32

标签: php

这是我的代码,我在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>

2 个答案:

答案 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;

    }