2013-04-04 132 views
1

我已经有会话工作来显示子信息,我现在想要能够编辑该信息并更新数据库。我试过每个YouTube视频和网站,但没有使用$ _SESSION,它们都使用$ _POST。当数据作为会话传递时更新mysql数据库

<div class="post"> 
    <h1 class="title">Child Details: </h1> 
    <p class="title"><img src=" <?php echo "".$_SESSION['sourcepath']; ?>" 
    </p> 
    <p class="title"><?php echo "".$_SESSION['ChildID']; ?></p> 

    <table style="width: 100%"> 
     <tr> 
      <td style="width: 106px">Name</td> 
      <td style="width: 252px"><?php  echo "".$_SESSION   ['Firstname']; ?> <?php echo "".$_SESSION['Surname']; ?></td> 
      <td style="width: 94px">School</td> 
      <td><form method="post"> 
       <br /> 
       <textarea name="School" cols="20" rows="5"><?php echo "".$_SESSION['School']; ?></textarea></form> 
      </td> 
     </tr> 
     <tr> 
      <td style="width: 106px">Date of Birth</td> 
      <td><?php echo "".$_SESSION['DateOfBirth']; ?></td> 
      <td style="width: 94px">English</td> 
      <td><form method="post"> 
       <br /> 
       <textarea name="English" cols="20" rows="5"><?php echo "".$_SESSION['English']; ?></textarea></form> 
      </td> 
     </tr> 
     <tr> 
      <td style="width: 106px">Age</td> 
      <td><?php echo "".$_SESSION['Age']; ?>;</td> 
      <td style="width: 94px">Science</td> 
      <td><form method="post"> 
       <br /> 
       <textarea name="Science" cols="20" rows="5"><?php echo "".$_SESSION['Science']; ?></textarea></form> 
      </td> 
     </tr> 
     <tr> 
      <td style="width: 106px">Address</td> 
      <td><form method="post"> 
       <br /> 
       <textarea name="Address" cols="20" style="height: 89px"><?php echo "".$_SESSION['Address']; ?></textarea></form> 
      </td> 
      <td style="width: 94px">Maths</td> 
      <td><form method="post"> 
       <br /> 
       <textarea name="Maths" cols="20" rows="5"><?php echo "".$_SESSION['Maths']; ?></textarea></form> 
      </td> 
     </tr> 
     <tr> 
      <td style="width: 106px">Postcode:</td> 
      <td><?php echo "".$_SESSION['PostCode']; ?>;</td> 
      <td style="width: 94px">Homework</td> 
      <td><form method="post"> 
       <br /> 
       <textarea name="Homework" cols="20" rows="5"><?php echo "".$_SESSION['Homework']; ?></textarea></form> 
      </td> 
     </tr> 
     <tr> 
      <td style="width: 106px">Contact Number</td> 
      <td><form method="post"> 
       <textarea name="ContactNumber" cols="20" rows="2"><?php echo "".$_SESSION['ContactNumber']; ?></textarea></form> 
      </td> 
      <td style="width: 94px">Additional</td> 
      <td><form method="post"> 
       <br /> 
       <textarea name="Additional" cols="20" rows="8"><?php echo "".$_SESSION['Additional']; ?></textarea></form> 
      </td> 
     </tr> 
     <tr> 
      <td style="width: 106px">Mother Name</td> 
      <td><?php echo "".$_SESSION['MotherName']; ?></td> 
      <td style="width: 94px">&nbsp;</td> 
      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td style="width: 106px">&nbsp;</td> 
      <td>&nbsp;</td> 
      <td style="width: 94px">&nbsp;</td> 
      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td style="width: 106px">Last Update</td> 
      <td><?php echo "".$_SESSION['TimeStamp']; ?></td> 
      <td style="width: 94px">&nbsp;</td> 
      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td style="width: 106px">&nbsp;</td> 
      <td>&nbsp;</td> 
      <td style="width: 94px">&nbsp;</td> 
      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td style="width: 106px"> 



      </td> 
      <td> 
      <form method="post" action="updatetest.php"> 
       <input type="hidden" name="id" value="<?php echo $_SESSION['ChildID']; ?>"/> 
       <input name="Submit" type="submit" value="Update" /></form> 
      </td> 







<?php session_start(); ?> 
    <?php  
    $connect = mysql_connect("127.0.0.1" , "root" , "") or die ("Couldnt connect  to   database"); 
    mysql_select_db("travellerfile") or die ("couldnt find the database"); 

    $School = $_SESSION['School']; 
    $Maths = $_SESSION['Maths']; 
    $English = $_SESSION['English']; 
    $Science = $_SESSION['Science']; 
    $Homework = $_SESSION['Homework']; 
    $Additional = $_SESSION['Additional']; 
    $id = $_SESSION['ChildID']; 

    $q = "SELECT * FROM child WHERE ChildID = $_SESSION[ChildID]"; 
    $result = mysql_query($q); 
    $person = mysql_fetch_array($result); 

    $u = "UPDATE child SET Maths= '$_SESSION['Maths']', Science= '$_SESSION['Science']'; 
?> 
+0

使用会话更新行类似于更新行,任何值 – samayo 2013-04-04 11:55:08

+0

那么代码是什么?我已经尝试了一切,没有任何工作。 – StephSetch 2013-04-04 11:57:45

+0

您没有运行更新查询'$ u' – samayo 2013-04-04 11:58:22

回答

1
$_SESSION['School'] = $_POST['School']; 
$School = $_SESSION['School']; 

某处,你就必须声明,$ _SESSION [“学校”]包含一个名称为“学校” textarea的价值。你不能只是希望PHP把POST变量放到session变量

1

例如:

$_SESSION['ChildID'] = 5; 

<form method="post" action="updatetest.php"> 
<input type="hidden" name="id" value="<?php echo $_SESSION['ChildID']; ?>"/> 
<input name="Submit" type="submit" value="Update" /></form> 

这将张贴您:

$_POST['id'] = 5; 

所以:

UPDATE table SET col = $_POST['id']; 
+0

这或多或少是我要发布的内容。如果要编辑数据,则需要将其放入表单中,然后使用POST或GET来传递更新的数据,然后在更新记录之前使用PHP收集数据。 – ragebunny 2013-04-04 12:02:52

0

更新用于数据库的$_SESSION end grab $_POST;

... 
$School = $_['School'] = $_POST['School']; 
$Maths = $_SESSION['Maths'] = $_POST['Maths']; 
$English = $_SESSION['English'] = $_POST['English']; 
$Science = $_SESSION['Science'] = $_POST['Science']; 
$Homework = $_SESSION['Homework'] = $_POST['Homework']; 
$Additional = $_SESSION['Additional'] = $_POST['Additional']; 
$id = $_SESSION['ChildID']; 
... 
0

$_POST都和$_SESSION仅是阵列。唯一让他们特别的是他们是全球性的。因此,如果您的代码适用于$_POST,则只需替换相应的$_SESSION值即可。

你真正的问题是,你是提交表单。表格可以使用getpost方法提交。没有session方法。所以你的值到达你的php脚本中的$_POST变量。在运行更新之前,您可以将它们复制到$_SESSION变量,但实际上没有理由。他们需要在$_SESSION的唯一原因是,如果需要使用提交的值重新显示表单,则可以输出它们。