обновление определенного поля с идентификатором в php моей таблице данных sql - PullRequest
0 голосов
/ 23 ноября 2011

Scrrenshot Of Page

Выше снимок экрана моей страницы.Моя проблема в том, что я получаю данные из своей таблицы sql и создаю таблицу данных php следующим образом:

<?php
$s="select * from events join event_time on (events.event_id=event_time.event_id)

where events.isapproved='N' ";
$res=mysql_query($s);
echo "<table border='1' cellspacing='2' >
<tr>
<th>title</th>
<th>email</th>
<th>address</th>
<th>link</th>
<th>start_date</th>
<th>start_time</th>
<th>end_date</th>
<th>isapproved</th> 
</tr>";
while($info = mysql_fetch_array( $res )) 
{
echo "<tr>";
echo " <td>".$info['title'] . "</td> ";
echo " <td>".$info['email'] . "</td> ";
echo " <td>".$info['address'] . "</td> ";
echo " <td>".$info['link'] . "</td> ";
echo " <td>".$info['start_date'] . "</td> ";
echo " <td>".$info['start_time'] . "</td> ";
echo " <td>".$info['end_date'] . "</td> ";
echo "<td><a href=yes.php?".$info['event_id'] .">".$info['isapproved'] ."</a></td>";
echo "<td><a href=del.php?".$info['event_id'].">".'Delete'."</a></td></tr>";

}
echo "</table>";

?>

Гиперссылка, к которой я пытаюсь получить доступ, - yes.php

<?php
include("config/config.php");

$sq="select * from events";
$res=mysql_query($sq);
while($row=mysql_fetch_assoc($res))
{
if($row['isapproved']=='N')
{
$id=$row['event_id'];

}
}
$sql="UPDATE events SET isapproved= 'Y'
WHERE event_id='$id'";

$result = mysql_query($sql);


header("Location:admin.php");
?>

См., Функция, когда я нажимаю эту гиперссылку "N", моя таблица должна быть обновлена ​​(как вы можете видеть в запросе) значением "Y".

Реальная проблема в том, что яполучить идентификатор, когда я нажимаю «N», но когда запрос gt обновил строку в нижней части таблицы обновляется как «Y».В чем проблема?Может ли кто-нибудь посмотреть на это ... Я умираю, глядя на это ...

Ответы [ 2 ]

0 голосов
/ 23 ноября 2011

Если я не ошибаюсь, вы хотите следующее. Сначала измените вашу таблицу данных php следующим образом:

while($info = mysql_fetch_array( $res )) 
{
echo "<tr>";
echo " <td>".$info['title'] . "</td> ";
echo " <td>".$info['email'] . "</td> ";
echo " <td>".$info['address'] . "</td> ";
echo " <td>".$info['link'] . "</td> ";
echo " <td>".$info['start_date'] . "</td> ";
echo " <td>".$info['start_time'] . "</td> ";
echo " <td>".$info['end_date'] . "</td> ";
echo "<td><a href=yes.php?id=".$info['event_id'] .">".$info['isapproved'] ."</a></td>";
echo "<td><a href=del.php?".$info['event_id'].">".'Delete'."</a></td></tr>";

}

Затем измените файл yes.php следующим кодом:

<?php
include("config/config.php");
$id=$_GET['id'];
$sql="UPDATE events SET isapproved= 'Y'
WHERE event_id='$id'";

$result = mysql_query($sql);


header("Location:admin.php");
?>
0 голосов
/ 23 ноября 2011

С этим кодом:

$sq="select * from events";
$res=mysql_query($sq);
while($row=mysql_fetch_assoc($res))
{
if($row['isapproved']=='N')
{
$id=$row['event_id'];

}
}

Вы получаете идентификатор всех неутвержденных событий и сохраняете их (перезаписываете) в $id. Вы, вероятно, хотите изменить все это на $id = intval($_GET['id']);, а на другой странице изменить <a href=yes.php?".$info['event_id'] ."> на <a href=yes.php?id=".$info['event_id'] .">.

Вы также можете добавить свою собственную проверку на этот вход. Имейте в виду, что все, что отправлено через get, небезопасно. Если кто-то отправляет попытку атаки с помощью инъекции, intval просто преобразует его в целое число (0, если не удается преобразовать), так что вы в безопасности от этого, но люди могут подделать любой желаемый идентификатор и иметь его статус изменилось. Также, если у вас есть событие с идентификатором 0, неудачный интвал изменит его вместо ничего, если вы не проверите его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...