2016-05-27 17 views
0

Ich versuche, eine Zeile mit PHP zu bearbeiten und zu aktualisieren. HierBearbeiten MySQL Zeile PHP

ist der Code:

index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 

    <div class="header"> 
    <?php include 'header.php';?> 
    </div> 

    <center> 
    <?php 
    /* 
     VIEW.PHP 
     Displays all data from 'players' table 
    */ 

     // connect to the database 
     include_once('../connection.php'); 

     // get results from database 
     $query = "SELECT EmployeeName, DOB, Age, StreetAddress, City, State, ZipCode, 
     Email, HomePhone, Wireless, JobTitle, id, HomeDept, Manager FROM headcount ORDER BY `headcount`.`EmployeeName` ASC"; 

     $response = @mysqli_query($dbc, $query); 

     // display data in table 
     echo "<p><b>View All</b> | <a href='../employees/rides.php'>Rides</a></p>"; 

     echo "<table border='1' cellpadding='10'>"; 
     echo "<tr> <th>Employee Name</th> <th>Home Department</th> <th>Job Title</th> <th>Edit</th></tr>"; 

     // loop through results of database query, displaying them in the table 
     while($row = mysqli_fetch_array($response)){ 

      // echo out the contents of each row into a table 
      echo "<tr>"; 
      echo '<td>' . $row['EmployeeName'] . '</td>'; 
      echo '<td>' . $row['HomeDept'] . '</td>'; 
      echo '<td>' . $row['JobTitle'] . '</td>'; 
      echo '<td><a href="edit.php?id=' . $row['id'] . '">Edit</a></td>'; 
      echo "</tr>"; 
     } 

     // close table> 
     echo "</table>"; 
    ?> 
    </center> 

edit.php

<?php 
mysql_connect('localhost', 'root', 'root') or die(mysql_error()); 
mysql_select_db("hwss") or die(mysql_error()); 

$UID = (int)$_GET['ID']; 
$query = mysql_query("SELECT * FROM headcount WHERE id = '$UID'") or die(mysql_error()); 

if(mysql_num_rows($query)>=1){ 
    while($row = mysql_fetch_array($query)) { 
     $EmployeeName = $row['EmployeeName']; 
     $DOB = $row['DOB']; 
     $Age = $row['Age']; 
     $email = $row['email']; 
    } 
?> 
<form action="update.php" method="post"> 
<input type="hidden" name="ID" value="<?=$UID;?>"> 
email: <input type="text" name="ud_email" value="<?=$email;?>"><br> 
Name: <input type="text" name="ud_EmployeeName" value="<?=$EmployeeName?>"><br> 
DOB: <input type="text" name="ud_dob" value="<?=$DOB?>"><br> 
Age: <input type="text" name="ud_Age" value="<?=$Age?>"><br> 
<input type="Submit"> 
</form> 
<?php 
}else{ 
    echo 'No entry found. <a href="javascript:history.back()">Go back</a>'; 
} 
?> 
</body> 
</html> 

Wenn ich bearbeiten klicken sie sagt: "Kein Eintrag gefunden" mit dem Back Link auf jeder ID URL. Ich verstehe, dass ich noch keinen Update-Code habe. Ich versuche einfach nur, die Daten anzuzeigen, bevor ich den Rest hinzufüge.

Fehlermeldung

Notice: Undefined index: ID in C:\xampp\htdocs\Scheduling\Employees\edit.php on line 5 
No entry found. Go back 
+0

Hinweis: Versuchen Sie nicht YOLO ruft in PHP zu machen. Es ist generell eine schlechte Idee, '@' zu verwenden, um Fehler zu unterdrücken. Machen Sie es sich nicht zur Gewohnheit. – tadman

+0

Sie verwenden 'mysqli' im ersten Beispiel, das ist in Ordnung, aber Sie verwenden die veraltete' mysql_query' -Funktion in der zweiten. Dies wurde in PHP 7 entfernt. Seien Sie sehr vorsichtig bei der Verwendung von [parametrisierten Abfragen] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) und ['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php) um Benutzerdaten zu Ihrer Anfrage hinzuzufügen. Fügen Sie niemals $ _POST- oder $ _GET-Werte in die Abfrage ein, ohne ordnungsgemäß zu entkommen. Casting nach "int" ist keine allgemeine Lösung. – tadman

Antwort

2

Verwendung: $_GET['id']

$UID = (int)$_GET['id']; 

statt

$UID = (int)$_GET['ID']; 
+0

Ah .. Ich wusste, es war einfach. Vielen Dank! – hinteractive02

+0

Ihr Willkommen! :) –