Update - есть таблицы, но в них нет ключей

icarus

Guest
Update

Привет всем !
Такая ситуация, есть таблицы, но в них нет ключей т.е к примеру таблица inquiry
состоит из трех текстовых полей, а мне нужно изменять записи, подскажите как эт
о можно сделать ? Добавление работает.
 

Фанат

oncle terrible
Команда форума
ключи для обновления не нужны.
надо просто указывать - какую запись ты хочешь обновить.
 

icarus

Guest
Пытаюсь делать так, но как то странно, то обновляет то нет, где ошибся или сделал не так

$query= "SELECT * FROM inquiry order by inquiry_id";
$result=pg_exec($connection, $query);
$rows = pg_numrows($result);
$x = 0;
while ($x < pg_numrows($result)) :
$inquiry_id = pg_result($result, $x, 'inquiry_id');
$inquiry_date = pg_result($result, $x, 'inquiry_date');
$inquiry_name = pg_result($result, $x, 'inquiry_name');
$inquiry_basis = pg_result($result, $x, 'inquiry_basis');
?>
<tr>
<td>&nbsp;<b><?php print "<input type='checkbox' name=\"edit[]\" value=\"$inquiry_id\">" ?></b></td>
<td>&nbsp;<b><?php print "<input type='text' name=\"editinquiry_id\" value=\"$inquiry_id\">" ?></b></td>
<td>&nbsp;<b><?php print "<input type='text' name=\"editinquiry_date\" value=\"$inquiry_date\">" ?></b></td>
<td>&nbsp;<b><?php print "<input type='text' name=\"editinquiry_name\" value=\"$inquiry_name\">" ?></b></td>
<td>&nbsp;<b><?php print "<input type='text' name=\"editinquiry_basis\" value=\"$inquiry_basis\">" ?></b></td>
</tr>

<?php

$x++;
endwhile;
print "</table>";

foreach ($_POST['edit'] as $tempedit)
{
$valedit[]=$tempedit;
}


for ($i=0;$i<=(count($valedit)-1);$i++)
{


$query= "UPDATE inquiry SET inquiry_id='$editinquiry_id', inquiry_date='$editinquiry_date', inquiry_name='$editinquiry_name', inquiry_basis='$editinquiry_basis' where inquiry_id='$valedit[$i]'";
$result=pg_exec($connection, $query) or die("Error in query: $query.".pg_errormessage($connection));
print "<small><u><b>Запись изменена !</b></small></u><br>\n";

}
 

Фанат

oncle terrible
Команда форума
стоп.
при чем здесь пхп код?
Если проблема с БД, то зачем здесь этот пхп код получения данных из базы, хтмл код?

Здесь, как я вижу, целая система.
1. Запрос
2. вывод формы
3. интерактив с пользователем
4. получение формы и ее обработка.
5. составление запроса
6. исполнение запроса
(7). Контроль исполнения запроса.

На основании каких данных сделан вывод о том, что проблема именно в обновлении без ключей?
 

icarus

Guest
Если есть одна запись в таблице, то изменятся правильно, при двух и более нет. Я думаю, что не правильно идентифицирую
изменяемую запись.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: icarus
Я думаю, что не правильно идентифицирую
изменяемую запись.
А ты не думай, просто выводи запрос перед тем, как его исполнить. И посмотри, чё в нём не так.
 

icarus

Guest
Насчет идентификации записи
делаю так

print "$valedit[$i]";

выводит правильно значение первого поля, значит дело не в этом
 
Сверху