ранее я поставил вопрос о получении одного постоянного значения из цикла и использовать его вне цикла (ссылка: Question). теперь я столкнулся с другой проблемой с другим циклом while. это выглядит следующим образом: у меня есть запрос:PHP, получающий переменные вне цикла while
$sql = "
SELECT alarms.id, alarms.date, clients.name, clients.number, alarms.controller,
alarmstype.type, alarms.alarmstatus, alarms.starttime, alarms.endtime
FROM alarms
INNER JOIN clients ON alarms.clientid = clients.id
INNER JOIN alarmstype ON alarms.typeid = alarmstype.id
WHERE alarms.alarmstatus = 'ON' ORDER BY alarms.date ASC";
$result = mysql_query($sql);
и для каждой строки я assinged кнопку в то время цикла:
while ($row = mysql_fetch_array($result)) {
print "<tr>
<td>" . $row['date'] . "</td>
<td>" . $row['number'] . " | " . $row['name'] . "</td>
<td>" . $row['controller'] . "</td>
<td>" . $row['type'] . "</td>
<td style='color: red'>
<select name = 'statusupdate' style='font-size:10px;'>
<option> " . $row['alarmstatus'] . " </option>
<option> OFF </option>
</select>
</td>
<td>" . $row['starttime'] . "</td>
<td>" . $row['endtime'] . "</td>
<td><input type='submit' name='delete' value='delete' /></td>
до сих пор так хорошо. Строки отображаются в порядке и кнопка там. (все время цикла находится в виде тега так входы круто любым способом я хочу сделать что-то вроде этого:..
}
if (isset($_POST['delete'])) {
delete_alarm_from_database($alarmid)
}
и функция выглядит следующим образом:
function delete_alarm_from_database($id) {
//find alarm by id and delete:
$sql = "SELECT * FROM alarms WHERE id = " . $id;
$result = mysql_result($sql);
if (!$result) {
print "couldn't find record.";
}
//delete record from database:
else {
$sql = "DELETE FROM alarms WHERE id = " . $id;
$result = mysql_result($sql);
}
}
моя проблема заключается в следующем: Каждая строка имеет идентификатор, но, устанавливая его как переменную, всегда будет переписываться до тех пор, пока он не поместит в переменную последний идентификатор, полученный циклом. (Что означает, что каждая кнопка удаления каждой строки просто удаляет последний идентификатор каждый page load)
вопрос такой. как я могу заставить каждую кнопку удаления распознать идентификатор строки?
спасибо заранее - приветствия.
Благодарим вас за ответ, вы подходите к моему решению. подумал, что у него есть небольшая проблема. если вы нажмете кнопку «Удалить», не проверив ничего, что вызывает ошибку, он даже не установил $ _POST ['ids ...'], поэтому он выдал неопознанный индекс.поэтому я немного изменил вашу идею php, чтобы она работала: вместо того, чтобы считать, что я обрабатываю ее с isset для сообщения ids внутри isset для submit. приветствует спасибо. – FedeSc