2013-04-04 3 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

+0

, и что бы это был за код? я пробовал все, и ничего не работает. – StephSetch

+0

вы не используете запрос на обновление '$ u' – samayo

ответ

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

Где-то вам придется объявить, что $ _SESSION [ «Школа»] содержит значение TEXTAREA с названием «Школа». Вы не можете просто ожидать PHP поставить переменные POST в переменные сессии

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

0

Update $_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.

Какова ваша настоящая проблема, заключается в том, что вы отправляете форму. Формы могут отправляться с использованием методов get или post. Нет метода session. Поэтому ваши значения поступают на ваш php-скрипт в переменной $_POST. Затем вы можете скопировать их в переменную $_SESSION, прежде чем запускать обновление, но на самом деле нет веских оснований. Единственная причина, по которой они должны быть в $_SESSION, заключается в том, что они могут выводиться, если форма должна быть повторно отображена с представленными значениями.