Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Что я делаю не так?
 
 автор: tavila   (11.04.2008 в 18:07)   письмо автору
 
 

Такая задача:
Есть база данных в ней таблица photos c фотографиями стиральных машин.
надо создать дополнительную таблицу с техническими характеристиками к каждой фотографии . Вот картинка этой дополнительной таблицы
http://iisus-hristos.com/tablica.jpg
задачу разбила на 3 скрипта.
vvod_stiralki.php - первый скрипт.
<?php
// Устанавливаем соединение с базой данных
require_once ("../config.php");
//------------------------------------------------------------------------------
$ctg = mysql_query("SELECT * FROM photo WHERE id_catalog=1");
while($cat = mysql_fetch_array($ctg))
{
echo $cat['id_photo']." ".$cat['name']."<br>";
$id_photo=mysql_escape_string($cat['id_photo']);
$name=mysql_escape_string($cat['name']);
$id_catalog=mysql_escape_string($cat['id_catalog']);

$ctg2 =mysql_query("INSERT INTO m_stiralki_photo (id_photo,name,id_catalog)
VALUES ('$id_photo','$name','$id_catalog')");
include "forma_stiralki.php";
}
?>
forma_stiralki.php - второй скрипт

<table width="482" border="0" cellspacing="0" cellpadding="0">
<form action="add_stiralki.php" method="post">
<tr><td width="168" align="left" valign="top" scope="col">номер фото </td>
<td width="314" align="left" valign="top" scope="col"><?=$id_photo; ?></td></tr>
<tr><td align="left" valign="top">наименование </td><td align="left" valign="top"><?=$name; ?></td></tr>
<tr><td align="left" valign="top">номер каталога</td><td align="left" valign="top"><?=$id_catalog; ?></td></tr>
<tr><td align="left" valign="top">марка</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="marka" value='<?=$marka; ?>'/></td></tr>
<tr><td align="left" valign="top">скорость</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="skorost" value='<?=$skorost; ?>' /></td></tr>
<tr><td align="left" valign="top">загрузка</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="zagruzka" value='<?=$zagruzka; ?>' /></td></tr>
<tr><td align="left" valign="top">управление</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="upravlenie" value='<?=$upravlenie; ?>' /></td></tr>
<tr><td align="left" valign="top">класс1</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="klass1" value='<?=$klass1; ?>' /></td></tr>
<tr><td align="left" valign="top">класс2</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="klass2" value='<?=$klass2; ?>' /></td></tr>
<tr><td align="left" valign="top">сушилка</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="susilka" value='<?=$susilka; ?>' /></td></tr>
<tr><td align="left" valign="top">таймер</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="taimer" value='<?=$taimer; ?>' /></td></tr>
<tr><td align="left" valign="top">защита</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="zasita" value='<?=$zasita; ?>' /></td></tr>
<tr><td align="left" valign="top">м_бака</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="m_baka" value='<?=$m_baka; ?>' /></td></tr>
<tr><td align="left" valign="top">расход енергии </td><td align="left" valign="top">
<input size="50" class="input" type="text" name="rashod_enrg" value='<?=$rashod_enrg; ?>'/></td></tr>
<tr><td align="left" valign="top">высота</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="visota" value='<?=$visota; ?>' /></td></tr>
<tr><td align="left" valign="top">ширина</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="shirina" value='<?=$shirina; ?>' /></td></tr>
<tr><td align="left" valign="top">глубина</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="glubina" value='<?=$glubina; ?>' /></td></tr>
<tr><td align="left" valign="top">класс центрифуги </td><td align="left" valign="top">
<input size="50" class="input" type="text" name="klass_centrf" value='<?=$klass_centrf; ?>' /></td></tr>
<tr><td align="left" valign="top">функция глажения </td><td align="left" valign="top">
<input size="50" class="input" type="text" name="f_l_glazenie" value='<?=$f_l_glazenie; ?>' /></td></tr>
<tr><td align="left" valign="top">дисбаланс</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="disbalans" value='<?=$disbalans; ?>' /></td></tr>
<tr><td align="left" valign="top">расход воды </td><td align="left" valign="top">
<input size="50" class="input" type="text" name="rashod_vodi" value='<?=$rashod_vodi; ?>' /></td></tr>
<tr><td align="left" valign="top">другие функции </td><td align="left" valign="top">
<input size="50" class="input" type="text" name="drugie_funk" value='<?=$drugie_funk; ?>' /></td></tr>
<tr><td align="left" valign="top">цвет</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="cvet" value='<?=$cvet; ?>' /></td></tr>
<tr><td align="left" valign="top">уровень шума </td><td align="left" valign="top">
<input size="50" class="input" type="text" name="uroven_shum" value='<?=$uroven_shum; ?>' /></td></tr>
<tr><td align="left" valign="top">доп. функции </td><td align="left" valign="top">
<input size="50" class="input" type="text" name="dop_funkc" value='<?=$dop_funkc; ?>' /></td></tr>
<tr><td align="left" valign="top">гарантия</td><td align="left" valign="top">
<input size="50" class="input" type="text" name="garantia" value='<?=$garantia; ?>' /></td></tr>
<tr><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">
<input type="submit" value="В&nbsp;В&nbsp;О&nbsp;Д"></td></tr>
<tr><td align="left" valign="top">&nbsp;</td><td align="left" valign="top">&nbsp;</td></tr>
</form>
</table>

add_stiralki.php - третий скрипт

<?
mysql_query("UPDATE m_stiralki_photo SET (
marka = '$a[marka]',
skorost = '$a[skorost]',
zagruzka = '$a[zagruzka]',
upravlenie = '$a[upravlenie]',
klass1 = '$a[klass1]',
klass2 = '$a[klass2]',
susilka = '$a[susilka]',
taimer = '$a[taimer]',
zasita = '$a[zasita]',
baka = '$a[m_baka]',
rashod_enrg = '$a[rashod_enrg]',
visota = '$a[visota]',
shirina = '$a[shirina]',
glubina = '$a[glubina]',
klass_centrf = '$a[klass_centrf]',
f_l_glazenie = '$a[f_l_glazenie]',
disbalans = '$a[disbalans]',
rashod_vodi = '$a[rashod_vodi]',
drugie_funk = '$a[drugie_funk]',
cvet = '$a[cvet]',
uroven_shum = '$a[uroven_shum]',
dop_funkc = '$a[dop_funkc]',
garantia = '$a[garantia]')");
?>
http://iisus-hristos.com/photo21/admin/vvod_stiralki.php - здесь можно запустить.
И вот что она вытворяет. !!!!
Идея такая взять одну записьиз таблицы photo создать новую запись в новой таблице записать в неё 3 нужных реквизита из photo затем запустить форму ввода для заполнения оставшихся полей записи из новой таблицы, заполнить их и опять вернуться в цикл первого скрипта.
Мне же печатается куча форм одна за одной. И записывает в таблицу только первые 3 реквизита. И всё.
Что я делаю не так?

   
 
 автор: elenaki   (11.04.2008 в 19:50)   письмо автору
 
   для: tavila   (11.04.2008 в 18:07)
 

вывод формы (подключение инклюдом) - в цикле, вот и выводится куча форм. причем, все, естесственно, указывают один файл в action, поля одинаковые. вот и записывается последнее значение. апдейтить нужно конкретную запись, т.е. в форме должно быть скрытое поле id_photo, по этому ид и находите запись для обновления.

   
 
 автор: elenaki   (11.04.2008 в 20:00)   письмо автору
 
   для: elenaki   (11.04.2008 в 19:50)
 

обычно делают так:
1. выводят список записей из таблицы, которые нужно редактировать
2. рядом с каждой такой записью ставят ссылку на файл редактирования (edit.php?id=1), содержащий форму, в которую заносятся все поля редактируемой записи (выбор записи из базы делается по $_GET["id"]) кстати, зря вы не используете глобальные массивы. при переносе на сервер, если там выключены register_globals, возникнут проблемы
3. в форме обязательно в скрытом поле указать id редактируемой записи, чтобы передать потом на файл апдейта базы - например edit_act.php. там его уже можно вытащить из $_POST["id"]
3. в файле edit_act.php делаете апдейт базы, но надо добавить условие WHERE id_photo=$_POST["id"] - тогда скрипт обновит именно ту запись, коорую вы отредатировали
4. после апдейта возвращаемся обратно на список всех записей и выбираем следующую запись для редактирования

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования