2016-05-21 10 views
0

Ich habe ein Formular erstellt, das Tabelleninhalte in Eingabefeldern aktualisieren soll, wenn der Inhalt der Eingabefelder geändert und übermittelt die Datenbank soll aktualisiert werden. Dies ist meine erste Seite:Aktualisierung von MySQL mit PHP in HTML-Formular

<body> 
<form action="qa1.php" method="post"> 

<ul> 
    <li><a class="active" href="df1.php">Disease</a></li> 
    <li><a href="drug.php" >Drug</a></li> 
    <li><a href="#about">Interaction</a></li> 
    <a href="#" class="dropbtn">Alternate Drug</a> 
    </ul> 
    <?php 
       $query = "SELECT * FROM disease;"; 
       $result = mysqli_query($dp, $query); 
       echo "<table border=5> 
       <tr> 
       <th>Select</th> 
       <th>Edit</th> 
       <th>Disease ID</th> 
       <th>Disease</th> 
       <th>Sub Disease</th> 
       <th>Associated Disease</th> 
       <th>Ethinicity</th> 
       <th>Source</th> 
       </tr>"; 
       while($row = mysqli_fetch_assoc($result)) { 
        echo "<tr>"; 
echo "<td><input type='radio' name='select' value=".$row['Disease_id']."/>&nbsp;</td>"; 

echo "<td>".$row{'Disease_id'}."</td>"; 
echo "<td><a href='edit.php?Disease_id=".$row['Disease_id']."'>edit</a></td>"; 
echo "<td>".$row{'Disease'}."</td>"; 
echo "<td>".$row{'SubDisease'}."</td>"; 
echo "<td>".$row{'Associated_Disease'}."</td>"; 
echo "<td>".$row{'Ethinicity'}."</td>"; 
echo "<td>".$row{'Source'}."</td>"; 
echo "</tr>";} 

echo "</table>"; 
     $selectedRow=$_POST['select']; 

    ?> 

<div> 


    <table border="0" align="center" style="border-spacing: 40px 30px;"> 
     <caption><strong>QualityAnalysis:</br></br></strong></caption></br></br> 

     <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="4" WIDTH="40%"> 



</br><div><center> 
      <button style="color: red"><a href="adddf1.php" target="_self" name="Add" value="Add">Add</a></button> 
      <input type = 'submit' value = 'Delete' name = 'submitdelete' button style="color: red"></button> 
      <input type = 'submit' value = 'Update' name = 'submitupdate'> 


     </center></div> </TABLE> 
     </body> 
</html> 

Dies ist meine Bearbeitung Seite: edit.php

<body> 
    <form action="edit.php" method="post"> 

<ul> 
    <li><a class="active" href="df1.php">Disease</a></li> 
    <li><a href="drug.php" >Drug</a></li> 
    <li><a href="#about">Interaction</a></li> 
    <a href="#" class="dropbtn">Alternate Drug</a> 
    </ul> 


<div> 
<?php 
    $conn = mysqli_connect('localhost','root','','tool'); 

// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_error()); 
} 

    if(isset($_GET['Disease_id'])) 
{ 
    if(isset($_POST['Update'])) 
    { 
$id=$_GET['Disease_id']; 
$name=$_POST['Ethinicity']; 
$query3=mysqli_query("update disease set Ethinicity='$name', where Disease_id='$id'"); 
if($query3) 
{ 
header('location:qa1.php'); 
} 
} 
$query1=mysqli_query("select * from disease where Disease_id='$id'"); 
$query2=mysqli_fetch_array($query1); 

?> 

    <table border="2" align="center" style="border-spacing: 40px 30px;"> 
     <caption><strong>Edit</br></br></strong></caption></br></br> 
     <tr> 

      <td>Ethinicity<input type="text" list="Ethinicity"  name="Ethinicity" value="<?php echo $row['Ethinicity'];?>"/> 
      <input type="hidden" name="Disease_id" value="<?php echo $row['Disease_id']; ?>"/>   

     <input type="submit" name="Update" value ="Update"> 
<?php 
} 
?>  

     </center></div></div> 
</form> 

Aber Daten werden nicht in der Datenbank aktualisiert zu werden. Kann mir jemand dabei helfen?

+0

'mysqli_query' brauchen den ersten Parameter als Verbindungszeichenfolge !! Lesen Sie http://php.net/manual/de/mysqli.query.php. PLus extra ',' vor where-Klausel in der UPDATE-Abfrage !! – Saty

+0

Fehler in Ihrer Updateabfrage 'Krankheit aktualisieren Set Ethinicity = '$ name' wo Disease_id = '$ id'' – developersaumya

+0

Vielen Dank. Ich habe diese Fehler bearbeitet. Trotzdem werden die Daten nicht aktualisiert –

Antwort

0

Zuerst benötigt mysqli_query den Verbindungsparameter.

Zweitens gibt es einen Syntaxfehler mit Ihrer UPDATE-Abfrage, ein Komma ist nicht erforderlich.

So soll es sein:

$query3=mysqli_query($conn, "update disease set Ethinicity='$name' where Disease_id='$id'"); 

$query1=mysqli_query($conn, "select * from disease where Disease_id='$id'"); 

Auch if($query3) nicht überprüfen, ob die Zeile erfolgreich eingesetzt wird, verwenden mysqli_affected_rows statt.

+0

Danke, Sir. Aber immer noch nicht aktualisiert. Ich weiß nicht, wo ich falsch gelaufen bin –