Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / UPDATE работатет, но в коде ошибка / 8 сообщений из 8, страница 1 из 1
25.05.2012, 01:04:09
    #37810768
Maxim_Vepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE работатет, но в коде ошибка
Доброго времени суток. У меня проблема, вот мой код:

if (isset($_POST['id_os'])) {$id_os = $_POST['id_os'];}
if (isset($_POST['art'])) {$art = $_POST['art']; if ($art == '') {unset($art);}}
if (isset($_POST['name'])) {$name = $_POST['name']; if ($name == '') {unset($name);}}
if (isset($_POST['img'])) {$img = $_POST['img']; if ($img == '') {unset($img);}}
if (isset($_POST['img_big'])) {$img_big = $_POST['img_big']; if ($img_big == '') {unset($img_big);}}
if (isset($_POST['ob'])) {$ob = $_POST['ob']; if ($ob == '') {unset($ob);}}
if (isset($_POST['opis'])) {$opis = $_POST['opis']; if ($opis == '') {unset($opis);}}
if (isset($_POST['prim'])) {$prim = $_POST['prim']; if ($prim == '') {unset($prim);}}
if (isset($_POST['price'])) {$price = $_POST['price']; if ($price == '') {unset($price);}}



if (isset($art) && isset($name) && isset($img) && isset($ob) && isset($opis) && isset($prim) && isset($price))
{
$sql = ("UPDATE os SET art = '".$art."', name = '".$name."', img = '".$img."', img_big = '".$img_big."', ob = '".$ob."', opis = '".$opis."', prim = '".$prim."', price = '".$price."' WHERE id_os = '".$id_os."'");
$res = mysql_query($sql) or die (mysql_error() ."<br />". $sql);



if ($res)
{
echo "<h1>Страница обновлена</h1>";

}
else
{
echo "<h1>Страница не обновлена</h1>";
}
}
else
{
echo "<h1>Заполните все поля</h1>";
}
?>


после внесения изменений в форму и нажатие на кнопку "изменить" появляется надпись "Страница обновлена", однако обновления в базу не заносятся. Проверил через echo получается UPDATE os SET art = '1', name = 'цувыыа', img = 'уавыа', img_big = 'уававу', ob = 'уаыва', opis = 'уавау', prim = 'уава', price = '23.00' WHERE id_os = '' , то есть обновление проходит, но из-за того что код не знает id_os в базу оно не заносится. Подскажите где у меня косяк.
...
Рейтинг: 0 / 0
25.05.2012, 01:47:15
    #37810782
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE работатет, но в коде ошибка
Maxim_Veprиз-за того что код не знает id_osА первой строчкой тогда что же из $_POST вытаскивается?

PS: пожалуйста, оформляйте код тегом SRC.
...
Рейтинг: 0 / 0
25.05.2012, 02:15:44
    #37810787
Maxim_Vepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE работатет, но в коде ошибка
Немного переделал код.
Это страница с формой:

<src><?php if (isset($_GET['id_os'])) {$id_os = $_GET['id_os'];}?>

<?php
if (!isset($id_os))

{

echo "<h1>Выбирите наименования товара</h1>";

$result = mysql_query("SELECT art,name,id_os FROM os");
$myrow = mysql_fetch_array($result);

do
{
printf ("<p><a href='edit_os.php?id_os=%s'>%s - %s</a></p>",$myrow["id_os"],$myrow["art"],$myrow["name"]);
}

while ($myrow = mysql_fetch_array($result));

}

else

{




$result = mysql_query("SELECT * FROM os WHERE id_os = '".$id_os."'");
$myrow = mysql_fetch_array($result);

$id_os = $id_os["id_os"];
$art = $art["art"];
$name = $name["name"];
$img = $img["img"];
$img_big = $img_big["img_big"];
$ob = $ob["ob"];
$opis = $opis["opis"];
$prim = $prim["prim"];
$price = $price["price"];
?>




<form name = "update" action = "update_os.php" method = "post">
<p>
<label>Измените артикул<br />
<input value = "<?=$myrow[art]?>" type="text" name="art" id="art">
</label>
</p><br />
<p>
<label>Измените наименование<br />
<textarea name="name" id="name" cols="60" rows="2"><?=$myrow[name]?></textarea>
</label>
</p><br />
<p>
<label>Измените mini - картинку<br>
<textarea name="img" id="img" cols="60" rows="3"><?=$myrow[img]?></textarea>
</label>
</p><br />
<p>
<label>Измените big - картинку<br>
<textarea name="img_big" id="img_big" cols="60" rows="4"><?=$myrow[img_big]?></textarea>
</label>
</p><br />
<p>
<label>Измените вес/объём<br>
<input value = "<?=$myrow[ob]?>" type="text" name="ob" id="ob">
</label>
</p><br />
<p>
<label>Измените описание средства<br>
<textarea name="opis" id="opis" cols="60" rows="4"><?=$myrow[opis]?></textarea>
</label>
</p><br />
<p>
<label>Измените применение средства<br>
<textarea name="prim" id="prim" cols="60" rows="4"><?=$myrow[prim]?></textarea>
</label>
</p><br />
<p>
<label>Измените стоимость товара<br>
<input value = "<?=$myrow[price]?>" type="text" name="price" id="price">
</label>
</p><br />
<p align="right">
<label>
<input type="submit" name="edit" id="submit" value=" Сохранить изменения ">
</label>
</p><br />
</form>



<?php }?>

</src>

А это страница обработчика:

<src> <?php
if (isset($_GET['id_os'])) {$id_os = $_GET['id_os'];}
{
$id_os = trim($_POST["id_os"]);
$art = trim($_POST["art"]);
$name = trim($_POST["name"]);
$img = trim($_POST["img"]);
$img_big = trim($_POST["img_big"]);
$ob = trim($_POST["ob"]);
$opis = trim($_POST["opis"]);
$prim = trim($_POST["prim"]);
$price = trim($_POST["price"]);



$sql = ("UPDATE os SET art = '".$art."', name = '".$name."', img = '".$img."', img_big = '".$img_big."', ob = '".$ob."', opis = '".$opis."', prim = '".$prim."', price = '".$price."' WHERE id_os = '".$id_os."'");
$row = mysql_query($sql) or die (mysql_error() ."<br />". $sql);

echo $sql;

if ($row)
{
echo "<h1>Страница обновлена</h1>";

}
else
{
echo "<h1>Страница не обновлена</h1>";
}
}

?>
</src>

Я написал не понял сам что вот теперь и страдаю echo $sql; показывает UPDATE os SET art = '1', name = 'цувыыа', img = 'уавыа', img_big = 'уававу', ob = 'уаыва', opis = 'уавау', prim = 'уава', price = '23.00' WHERE id_os = ''
так что id_os я просто не получаю.
...
Рейтинг: 0 / 0
25.05.2012, 02:22:57
    #37810792
Maxim_Vepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE работатет, но в коде ошибка
id_os определённо не хочет появляться из базы
...
Рейтинг: 0 / 0
25.05.2012, 02:35:01
    #37810796
Maxim_Vepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE работатет, но в коде ошибка
Самое интересное когда ставишь другое значение вместо id_os например art, значение art появляется, но обновления всё равно не происходит.
...
Рейтинг: 0 / 0
25.05.2012, 02:48:12
    #37810798
Maxim_Vepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE работатет, но в коде ошибка
Вот ещё код для обработчика, здесь всё работает однако строка которую обновляешь встаёт наверх и полностью заменяет собой первую, помогите её доработать.
<src>

$sql = "UPDATE os SET ";

for($i=0; $i<$n; $i++)
{
$name_f = mysql_field_name($list_f, $i);
$value = $_POST[$name_f];
$j = $i+1;
$sql = $sql.$name_f."='$value'";
if($j<>$n) $sql = $sql.",";
}



$result = mysql_query($sql, $db);

if($result)
echo "<h2>Товар занесён в базу</h2>";
else
echo "<h2>Товар не занесён в базу!</h2>";

mysql_close($db);

</src>
...
Рейтинг: 0 / 0
25.05.2012, 09:46:47
    #37810977
Програмёр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE работатет, но в коде ошибка
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
<?php if (isset($_GET['id_os'])) {$id_os = $_GET['id_os'];}?>

<?php 
if (!isset($id_os))

{

echo "<h1>Выбирите наименования товара</h1>";

$result = mysql_query("SELECT art,name,id_os FROM os"); 
$myrow = mysql_fetch_array($result);

do 
{
printf ("<p><a href='edit_os.php?id_os=%s'>%s - %s</a></p>",$myrow["id_os"],$myrow["art"],$myrow["name"]);
}

while ($myrow = mysql_fetch_array($result));

}

else

{




$result = mysql_query("SELECT * FROM os WHERE id_os = '".$id_os."'");
$myrow = mysql_fetch_array($result);

/*$id_os = $id_os["id_os"];
$art = $art["art"];
$name = $name["name"];
$img = $img["img"];
$img_big = $img_big["img_big"];
$ob = $ob["ob"];
$opis = $opis["opis"];
$prim = $prim["prim"];
$price = $price["price"];*/ // смысла кода не понял, считаю лишним
?>




<form name = "update" action = "update_os.php" method = "post">
//А тут ВНИМАНИЕ... добавляем недостающее в отправленом запросе поле id_os
<input type="hidden" name="id_os" value="<?= $id_os ?>">
<p>
<label>Измените артикул

<input value = "<?=$myrow[art]?>" type="text" name="art" id="art">
</label>
</p>

<p>
<label>Измените наименование

<textarea name="name" id="name" cols="60" rows="2"><?=$myrow[name]?></textarea>
</label>
</p>

<p>
<label>Измените mini - картинку<br>
<textarea name="img" id="img" cols="60" rows="3"><?=$myrow[img]?></textarea>
</label>
</p>

<p>
<label>Измените big - картинку<br>
<textarea name="img_big" id="img_big" cols="60" rows="4"><?=$myrow[img_big]?></textarea>
</label>
</p>

<p>
<label>Измените вес/объём<br>
<input value = "<?=$myrow[ob]?>" type="text" name="ob" id="ob">
</label>
</p>

<p>
<label>Измените описание средства<br>
<textarea name="opis" id="opis" cols="60" rows="4"><?=$myrow[opis]?></textarea>
</label>
</p>

<p>
<label>Измените применение средства<br>
<textarea name="prim" id="prim" cols="60" rows="4"><?=$myrow[prim]?></textarea>
</label>
</p>

<p>
<label>Измените стоимость товара<br>
<input value = "<?=$myrow[price]?>" type="text" name="price" id="price">
</label>
</p>

<p align="right">
<label>
<input type="submit" name="edit" id="submit" value=" Сохранить изменения ">
</label>
</p>

</form>



<?php }?> 

А это страница обработчика:

<?php 
if (isset($_GET['id_os'])) {$id_os = $_GET['id_os'];} // странно что вообще работает... форма Post зато массив GET :) меняем на POST
{
$id_os = trim($_POST["id_os"]);
$art = trim($_POST["art"]);
$name = trim($_POST["name"]);
$img = trim($_POST["img"]);
$img_big = trim($_POST["img_big"]);
$ob = trim($_POST["ob"]);
$opis = trim($_POST["opis"]);
$prim = trim($_POST["prim"]);
$price = trim($_POST["price"]);



$sql = ("UPDATE os SET art = '".$art."', name = '".$name."', img = '".$img."', img_big = '".$img_big."', ob = '".$ob."', opis = '".$opis."', prim = '".$prim."', price = '".$price."' WHERE id_os = '".$id_os."'");
$row = mysql_query($sql) or die (mysql_error() ."
". $sql);

echo $sql;

if ($row)
{
echo "<h1>Страница обновлена</h1>";

}
else
{
echo "<h1>Страница не обновлена</h1>";
}
}

?>



Вот и всё... так должно работать... просто в коде не было поля id_os в форме... вот оно и не отправлялось.
...
Рейтинг: 0 / 0
25.05.2012, 12:12:47
    #37811295
Maxim_Vepr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
UPDATE работатет, но в коде ошибка
Програмёр,

Друг если бы мог расцеловал. Я над этой фигнёй уже неделю сижу и спросить не у кого. ОГРОМНОЕ СПАСИБО.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / UPDATE работатет, но в коде ошибка / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]