2017-02-23 80 views
-2

我要更新包含名称,位置,地址和特定id的电话号码的学生数据库。当我运行下面的代码时,它说undefined mid是给,请你检查它和纠正,我的错误,请....这里是我的代码 insert.php更新不起作用给未定义的变量

<?php 
    $user="root"; 
    $server="localhost"; 
    $password=""; 
    $db="students"; 
    $dbconn= mysql_connect($server,$user,$password); 
    mysql_select_db($db,$dbconn); 
    if(isset($_POST['submit'])) { 
     $name=mysql_real_escape_string($_POST['name']); 
     $location=mysql_real_escape_string($_POST['location']); 
     $address=mysql_real_escape_string($_POST['address']); 
     $phonenumber=mysql_real_escape_string($_POST['phonenumber']);  
     $str="insert into info(name,location,address,phonenumber) VALUES ('$name','$location','$address','$phonenumber')"; 
     $query=mysql_query($str); 
     if($query) { 
     echo"Inserted Successfully"; 
     } else { 
     echo "Insert Failed"; 
     } 
     $query2=mysql_query("select * from info"); 
     echo "<table border='2'>"; 
     echo "<tr><th>Name</th><th>Location</th><th>Address</th><th>Phonenumber</th><th>Action</th></tr>"; 
     while($row=mysql_fetch_array($query2)) { 
     echo "<tr>"; 
     echo "<td>".$row['name']."</td>"; 
     echo "<td>".$row['location']."</td>"; 
     echo "<td>".$row['address']."</td>"; 
     echo "<td>".$row['phonenumber']."</td>"; 
     echo "<td><a href='modify.php?sid=".$row['id']."'>Update</a></td>";   
     echo "</tr>"; 
     } 
     echo "</table>"; 
    } 
?> 

modify.php

<?php 
    $user="root"; 
    $server="localhost"; 
    $password=""; 
    $db="students"; 
    $dbconn= mysql_connect($server,$user,$password); 
    mysql_select_db($db,$dbconn); 
    if(isset($_GET['sid'])) { 
     $mid=$_GET['sid']; 
     echo $mid; 
    } 
    $q="select * from info where id=$mid"; 
    echo $q; 
    $query3=mysql_query($q);  
    $row=mysql_fetch_array($query3); 
?> 
<html> 
<head><title>Updation</title></head> 
<body>  
    <form method="POST" action="edit.php" id="myform"> 
     EnterName:<input type="text" name="name" id="name" value="<?php echo $row['name'];?>"><br/> 
     EnterLocation:<input type="text" name="location" id="location"value="<?php echo $row['location'];?>"><br/> 
     EnterAddress:<input type="text" name="address" id="address" value="<?php echo $row['address'];?>"><br/> 
     EnterPhoneNumber:<input type="text" name="phonenumber" id="phonenumber" value="<?php echo $row['phonenumber'];?>"><br/> 
     <input type="hidden" name="id" value=<?php if(isset($mid)) echo $mid; ?>> 
     <input type="submit" name="update" value="update"> 
    </form>  
</body> 
</html> 

最后我正在重定向更新edit.php edit.php

<?php 
    $user="root"; 
    $server="localhost"; 
    $password=""; 
    $db="students"; 
    $dbconn= mysql_connect($server,$user,$password); 
    mysql_select_db($db,$dbconn); 
    if(isset($_GET['sid'])) { 
     $mid=$_GET['sid']; 
     echo $mid; 
    } 
?> 
<html> 
<head><title></title></head> 
<body> 
    <form> 
     <input type="hidden" name="id" value="<?php if(isset($mid)) echo $mid; ?>"> 
    </form> 
</body> 
</html> 
<?php 
    if(isset($_POST['update'])) { 
     echo $mid; 
     $name=mysql_real_escape_string($_POST['name']); 
     $location=mysql_real_escape_string($_POST['location']); 
     $address=mysql_real_escape_string($_POST['address']); 
     $phonenumber=mysql_real_escape_string($_POST['phonenumber']); 
     $query5=mysql_query("update info set name='$name',location='$location',address='$address',phonenumber='$phonenumber' where id=$mid"); 
     if($query5) { 
     echo "update success"; 
     } else { 
     echo "Update Failed"; 
     }  
    } 
?> 
+3

你从哪里得到这段代码? :S您可以在Google中搜索PHP中的PDO更新查询,并且不要再次使用MySQL_!你真的需要用适当的编码重新编写你的脚本! – Soheyl

+1

如果'$ mid'未定义,通常意味着它没有被定义,请解决您的代码问题! – JustBaron

回答

0

,如果你想获得简单的答案 您可以添加

$mid = ''; 

if(isset( $ _GET['sid'])) { $ mid= $ _GET['sid']; echo $ mid; }

使你的代码是这样的:

$mid = ''; if(isset( $ _GET['sid'])) { $ mid= $ _GET['sid']; echo $ mid; }

也可以添加isset每次使用$中旬。

echo isset($mid) ? $mid : ''; 
+0

先生,我添加$ mid =“”之前得到定义, –

+0

,但现在我不dont错误,但我得到更新失败.... –

+0

谢谢先生,我得到了输出......我纠正了我的错误,并添加了$ mid =“” –

0

edit.php文件你已经使用$_GET['sid']而在你的隐藏字段使用字段名idmodify.php文件

replace this line 

<input type="hidden" name="id" value=<?php if(isset($mid)) echo $mid; ?>> 

的下面一行

<input type="hidden" name="sid" value=<?php if(isset($mid)) echo $mid; ?>> 

一两件事。 您已经使用在edit.phpPOSTGET或访问sid使用$_POST['sid']

改变了它,这将解决你的问题

谢谢
希望!这将帮助你

+0

谢谢先生,我得到了答案......当我用你的隐藏线代替 –