2014-02-03 2 views
0

Я создал простой запрос на получение записей из моей базы данных и передачу его в html. Я хочу, чтобы добавить кнопку редактирования/просмотра для каждой строки, так после некоторых исследований, я закончил с этим:Добавление кнопки редактирования в каждую строку таблицы для обновления базы данных в PHP

$query = mysqli_query($con, "SELECT * FROM mytable") or die(mysqli_error($con)); 
if(mysqli_num_rows($query) > 0) { 
    while($row = mysqli_fetch_array($query)) { 
     echo "<tr><td>".$row['pId']."</td>"; 
     echo "<td>".$row['data1']."</td>"; 
     echo "<td>".$row['data2']."</td>"; 
     echo "<td><form action='detailform.php' method='POST'><input type='hidden' name='tempId' value='".$row["pId"]."'/><input type='submit' name='submit-btn' value='View/Update Details' /><form></td>"; 
    } 
} 

Это прекрасно работает 1 записей. Но если у меня 2 или более, последняя запись всегда извлекается независимо от выбранной вами записи. Например, если у вас есть 5 записей и вы выбираете любую запись, 5-я запись всегда будет выбрана, поэтому я не смогу обновить предыдущие записи. Почему это происходит? Я что-то упускаю?

Не уверен, если это поможет мой случай, но вот моя основная логика моего detailform.php:

if(isset($_POST["tempId"]){ 
    //pass data using post then update. Here's where I keep getting only the latest record regardless of selected record from previous page 
} else { //add data } 

ответ

3

Закрыть форму:

echo "<td><form action='detailform.php' method='POST'><input type='hidden' name='tempId' value='".$row["pId"]."'/><input type='submit' name='submit-btn' value='View/Update Details' /></form></td></tr>"; 

Первый отправлен правильно, потому что он ближе всего к кнопке отправки, остальное будет ближе к последней кнопке отправки

+0

Well doh * facepalms. Я смотрел на код в течение 8 часов подряд, поэтому я полностью пропустил это. По-видимому, это единственное, чего мне не хватает. Большое спасибо! – user1597438

1

попробовать этот

while($row = mysql_fetch_assoc($query)) { 
     echo "<tr><td>".$row['pId']."</td>"; 
     echo "<td>".$row['data1']."</td>"; 
     echo "<td>".$row['data2']."</td>"; 
     echo "<td><form action='detailform.php' method='POST'><input type='hidden' name='tempId' value='".$row["pId"]."'/><input type='submit' name='submit-btn' value='View/Update Details' /></form></td></tr>"; 
    } 
+0

Спасибо. Я пропустил это в конце, но это все та же проблема. – user1597438

+0

@@ user1597438 ans был обновлен ... надеюсь, что он решает вашу проблему .. :) – user1844933

+0

Да. Я просто пропустил закрывающий тег формы в стороне от строки. Благодаря! :) – user1597438

Смежные вопросы