Я искал всюду для помощи в этом, но не могу найти ответ. У меня есть форма, где люди могут ввести поисковый запрос. После нажатия кнопки «Отправить» он ссылается на страницу PHP, которая ищет термин, введенный против 3 полей в моей БД. Все это прекрасно работает. Я хочу добавить кнопку для каждого отображаемого результата, который позволяет мне щелкнуть, чтобы добавить к увеличивающемуся числу.обновить текущую строку
Это работает, если я определяю, какую строку я хочу обновить в своей инструкции запроса, поскольку она перенаправляется на себя после нажатия кнопки; но я хочу, чтобы кнопка обновляла запись, показанную в результатах, а не определенную запись.
Очевидно, что может быть несколько возвращенных результатов с каждой кнопкой, поэтому я хочу, чтобы пользователь мог нажать кнопку, прикрепленную к этой записи, и обновить поле в этой строке базы данных. Можно ли каким-либо образом определить «текущую запись»?
Вот текущий код:
if($_POST['like']){
$add =("UPDATE Players SET played=played+1 WHERE SquadNo=11");
$result = mysql_query($add) or die(mysql_error());
}
Как вы можете видеть, что я определил squad number 11
в данный момент, но хотите обновить текущую строку.
Вторая проблема, второстепенная на данном этапе, заключается в том, что, когда я нажимаю кнопку, чтобы увеличить значение, кажется, что он обновляет поиск и предоставляет другой набор результатов после того, как приращение произошло. Как я могу предотвратить это?
Спасибо, и я надеюсь, что это имеет смысл.
Вот мой полный код:
<?php
mysql_connect ("localhost", "USER","PASSWORD") or die (mysql_error());
mysql_select_db ("TABLE");
if($_POST['like']){
$add =("UPDATE Players SET played=played+1 WHERE SquadNo=11");
$result = mysql_query($add) or die(mysql_error());
}
$term = $_POST['term'];
$sql = mysql_query("select * from Players where POS like '%$term%' or POS2 like '%$term%' or POS3 like '%$term%' ");
while ($row = mysql_fetch_array($sql)){
echo 'Name: '.$row['Name'];
echo '<br/> Surname: '.$row['Surname'];
echo '<br/> Position 1: '.$row['POS'];
echo '<br/> Position 2: '.$row['POS2'];
echo '<br/> Position 3: '.$row['POS3'];
echo '<br/> Squad Number: '.$row['SquadNo'];
echo '<br/> Played: '.$row['played'];
echo '<br/><br/>';
echo'<form method="post" action="' . $_SERVER[PHP_SELF]. '">
<input type="submit" name="like" value="like"><br>
</form>';
echo '<br/><br/>';
}
?>
Скрытых полей являются очень полезными в этих случаях, таким образом каждая запись связана с определенным 'rowId' для каждой строки, отображаемых – kabuto178
Спасибо за возвращение к меня на этом @MarcB и всех остальных, очень ценю. Я вижу, как это работает, и теория, стоящая за ней, но я думаю, что мой плохой идентификатор выполнения не позволяет ему работать. Число не увеличивается, но обновляет страницу, я сделал что-то неправильно? \t echo '
'; – user2271378код инкрементирования находится в том же месте, что и выше, и является , если ($ _ POST [ 'играет']) { \t $ ROWID = $ _POST [ 'RowId']; $ add = ("UPDATE Players SET играл = играл + 1 WHERE SquadNo = '. $ Rowid.'"); $ result = mysql_query ($ add) или die (mysql_error()); \t \t} – user2271378