|
|
|
| Подскажите как можно определить определённую строку в цикле do{} while() | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 19:55)
| | никак, и если бы вы учились не у ЖПопова, то у вас бы не возникло такого вопроса.
расскажите лучще зачем вам потребовалось определенно определить определенную строку? | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 19:55)
| | напишите по-русски что вам нужно сделать | |
|
|
|
|
|
|
|
для: psychomc
(07.03.2013 в 20:09)
| | есть форма она выведена с помощью цикла
do
{
if($row['moder']==0){$img="nan.png"; $hi="show_help('hi3')";$out="hide_help('hi3')";}
if($row['moder']==1){$img="esurl.jpg"; $hi="show_help('hi4')";$out="hide_help('hi4')";}
if($row['moder']==2){$img="nouurl.jpg"; $hi="show_help('hi5')";$out="hide_help('hi5')";}
echo' <tr >
<td align="center" class="main">'.$row['id'].'</td>
<input type="hidden" name="sel['.$row['id'].']" value="sel" />
<td class="main">
<a href="'.$row['surl'].'">
<img onMouseOver="show_help(\'hi2\')" onMouseOut="hide_help(\'hi2\')" src="'.$servname.'template/images/info.gif" width="16" height="16" border="0"></a> <font style="font-size: 13px;"></font> <a href="" target="_blank">'.$row['sname'].'</a></td>
<td align="center"><img onMouseOver='.$hi.' onMouseOut='.$out.'
src="'.$servname.'template/images/'.$img.'" width="14" height="14"/></td>
<td align="center" nowrap>
<input type="text" name="date['.$row['id'].']" value="'.$row['price'].'" size="3"> <a href=""><img onMouseOver="show_help(\'hi6\')" onMouseOut="hide_help(\'hi6\')" src="'.$servname.'template/images/stavki.jpg" width="16" height="18" border="0"></a></td>
<td class="main">
<table width="80"cellspacing="0">
<tr>
<td width="50%" align="center" class="main"><a href="">0</a></td>
<td width="50%" align="center" class="main"><a href="">0</a></td>
</tr>
</table>
</td>
<td align="center">
<table cellspacing="1" cellpadding="0">
<tr>
<td><a href=""><img onMouseOver="show_help(\'hi7\')" onMouseOut="hide_help(\'hi7\')" src="'.$servname.'template/images/window.jpg" alt="Получить код,_для блока ссылок" width="19" height="16" border="0" align="middle"></a></td>
<td><a href=""><img onMouseOver="show_help(\'hi8\')" onMouseOut="hide_help(\'hi8\')" src="'.$servname.'template/images/setting.jpg" alt="Настроить блок ссылок" width="16" height="16" border="0" align="middle"></a></td>
<td><a href=""><img onMouseOver="show_help(\'hi9\')" onMouseOut="hide_help(\'hi9\')" src="'.$servname.'template/images/uses.jpg" alt="Редактировать сайт" width="16" height="16" border="0" align="middle"></a></td>
<td><a href=""><img onMouseOver="show_help(\'hi10\')" onMouseOut="hide_help(\'hi10\')" src="'.$servname.'template/images/nouurl.jpg" alt="Удалить сайт" width="16" height="16" border="0" align="middle"></a></td>
</tr>
</table>';
}
while ($row = mysql_fetch_array($ap));
?>
</td>
</tr>
</tr>
</table>
</td>
</tr>
<tr >
<td> </td>
<td colspan="3" align="center">
<input type="submit" value="Сохранить ставки"></td>
</tr></table> <br/><br/>
</form>
при нажатии при изменение данных и нажатии на sabmitf,. необходимо определить что перезапись в базу будет именно ту строку которая подверглась изменению.
Я предлологаю решить так
if($_POST['upr']=="akk-smysites")
{
$im = key($_POST['sel']); //определяем id массива из цикла который будем изменять
$newpryce=$_POST['date'][$im];
//подключение к базе и изменение ставок
$uppr = mysql_query("UPDATE url SET price='$newpryce' WHERE `id`='$im'")or die(mysql_error());
}
else
{
echo'<br><p align="center"><b><font color="red">Неверный формат запроса!</font></b></p>';
}
}
но в массиве только id первой переменной | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 20:23)
| | если переношу в whike(){}, то первая запись с базы не выбирается | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 20:24)
| | И к стать Жопов здесь не причём, я самоучка, сёрфинг учит | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 20:26)
| | учат книги и учителя
ну а раз код от ЖП так значит он вас и "учит" | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 20:23)
| | неверный подход
если переношу в whike(){}, то первая запись с базы не выбирается
потому что вы уже её выбрали, точнее ЖП выбрал... | |
|
|
|
|
|
|
|
для: Valick
(07.03.2013 в 20:25)
| | Где именно неправельный подход? в чем я ожибаюсь, направьте плизз | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 20:27)
| | причём жп, скрипт от <?php до ?> самолично писан, и это только кусочек | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 20:27)
| | потому что вы из садика прыгнули в 5-тый класс, а теперь удивляетесь "чё за байда"
ничем не хочу вас обижать, но по другому тут не скажешь
для того что бы вас направить на путь истинный, вам необходимы базовые знания, которых у вас нет | |
|
|
|
|
|
|
|
для: Valick
(07.03.2013 в 20:30)
| | Ну помоему не все гениями рождаются, и многие из нас с вами не исключения, если бы я всё знал, неужели просил помощи о направление на путь истинны! | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 20:34)
| | это сомо собой, но вы сейчас просите экстерном вас "с первого по четвертый класс" в одном посте, как думаете это реально?
я говорю что вижу
у вас код не написан, а слеплен
__
по поводу кода, вам надо либо формировать чекбоксы, и ставить галочки на те строки которые надо обновить, либо на каждую строку делать отдельную кнопку | |
|
|
|
|
|
|
|
для: Valick
(07.03.2013 в 20:47)
| | Это возможно сделать так как я предлогаю, одна кнопка на все выводимые данные, делаю сайт наподобие wmlink.ru, там это решение уже есть, но как я непойму, но факт-РАБОТАЕТ | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 20:52)
| | одно понял, что первую строку я выбрал, нужно була так
while ($row = mysql_fetch_array($ap)){.......}
тоесть начать цикл с первой строки в таблице | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 21:11)
| | :) | |
|
|
|
|
|
|
|
для: Valick
(07.03.2013 в 21:28)
| | Ладно скрипт я полюбому перепишу, но как ключ массива цикла выяснить чтоб запрос создать??????, что лень подсказать чтоли:( | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 21:35)
| | Вот результат отработки скрипта, который я пытаюсь повторить
<table class="goodstbl" frame="void" rules="all" cellspacing="0">
<tr>
<th width="50" rowspan="2">ID</th>
<th width="100%" rowspan="2" align="left"> Название сайта<br> URL сайта</th>
<th width="50" rowspan="2">Статус <font color="#d40202">*</font></th>
<th width="75" rowspan="2">За клик <font color="#d40202">*</font><br>(руб.)</th>
<th width="100" colspan="2">Кликов <font color="#d40202">*</font></th>
<th width="110" rowspan="2">Функции</th>
</tr>
<tr>
<th>сегодня</th>
<th>вчера</th>
</tr>
<tr >
<td align="center">123275</td>
<td><a href="index.php?cf=stat-statmysitefull&sid=123275"><img src="ico/information.png" width="16" height="16" border="0" alt="Подробно по сайту"></a> <font style="font-size: 13px;">111</font> <br><a href="111" target="_blank" class="bluelink">http://futajiki.narod.ru</a></td>
<td align="center"><img class="icon" src="images/img10small.gif" align="middle" alt="Сайт не проверен"/><!--- 0 ---></td>
<td align="center" nowrap><input type="text" name="spr[123275]" value="0.00" size="5"> <a href="index.php?cf=stat-mysitetop&sid=123275"><img src="ico/currency_dollar.png" width="16" height="16" border="0" alt="Ставки лидеров"></a></td>
<td align="center"><a href="index.php?cf=stat-statmysite&sid=123275" class="bluelink">0</a></td>
<td align="center"><a href="index.php?cf=stat-statmysitel&sid=123275" class="bluelink">0</a></td>
<td align="center">
<table cellspacing="1" cellpadding="0">
<tr>
<td><a href="index.php?cf=akk-viewmysites&sid=123275"><img src="images/watch.gif" alt="Получить код,_для блока ссылок" width="19" height="16" border="0" align="middle" class="icon"></a></td>
<td><a href="index.php?cf=akk-veditmysites&sid=123275"><img src="images/img08small.gif" alt="Настроить блок ссылок" width="16" height="16" border="0" align="middle" class="icon"></a></td>
<td><a href="index.php?cf=akk-editmysites&sid=123275"><img src="images/img02small.gif" alt="Редактировать сайт" width="16" height="16" border="0" align="middle" class="icon"></a></td>
<td><a href="index.php?cf=akk-delmysites&sid=123275"><img src="images/img03small.gif" alt="Удалить сайт" width="16" height="16" border="0" align="middle" class="icon"></a></td>
</tr>
</table>
</td>
</tr> <tr class="gray">
<td align="center">128613</td>
<td><a href="index.php?cf=stat-statmysitefull&sid=128613"><img src="ico/information.png" width="16" height="16" border="0" alt="Подробно по сайту"></a> <font style="font-size: 13px;">111</font> <br><a href="111/" target="_blank" class="bluelink">http://exchangeobmen.narod.ru/</a></td>
<td align="center"><img class="icon" src="images/img11small.gif" align="middle" alt="Сайт проверен_и одобрен"/><!--- 0 ---></td>
<td align="center" nowrap><input type="text" name="spr[128613]" value="0.00" size="5"> <a href="index.php?cf=stat-mysitetop&sid=128613"><img src="ico/currency_dollar.png" width="16" height="16" border="0" alt="Ставки лидеров"></a></td>
<td align="center"><a href="index.php?cf=stat-statmysite&sid=128613" class="bluelink">0</a></td>
<td align="center"><a href="index.php?cf=stat-statmysitel&sid=128613" class="bluelink">0</a></td>
<td align="center">
<table cellspacing="1" cellpadding="0">
<tr>
<td><a href="index.php?cf=akk-viewmysites&sid=128613"><img src="images/watch.gif" alt="Получить код,_для блока ссылок" width="19" height="16" border="0" align="middle" class="icon"></a></td>
<td><a href="index.php?cf=akk-veditmysites&sid=128613"><img src="images/img08small.gif" alt="Настроить блок ссылок" width="16" height="16" border="0" align="middle" class="icon"></a></td>
<td><a href="index.php?cf=akk-editmysites&sid=128613"><img src="images/img02small.gif" alt="Редактировать сайт" width="16" height="16" border="0" align="middle" class="icon"></a></td>
<td><a href="index.php?cf=akk-delmysites&sid=128613"><img src="images/img03small.gif" alt="Удалить сайт" width="16" height="16" border="0" align="middle" class="icon"></a></td>
</tr>
</td>
</tr> <tr >
<td> </td>
<td colspan="3" align="center"><input type="submit" value="Сохранить ставки"></td>
<td colspan="2"> </td>
</tr></table> </form> | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 21:51)
| | пользуйтесь тегами оформления кода [сode] [/сode] | |
|
|
|
|
|
|
|
для: Valick
(07.03.2013 в 21:55)
| | ok | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 22:02)
| | [сode]<table class="goodstbl" frame="void" rules="all" cellspacing="0">
<tr>
<th width="50" rowspan="2">ID</th>
<th width="100%" rowspan="2" align="left"> Название сайта<br> URL сайта</th>
<th width="50" rowspan="2">Статус <font color="#d40202">*</font></th>
<th width="75" rowspan="2">За клик <font color="#d40202">*</font><br>(руб.)</th>
<th width="100" colspan="2">Кликов <font color="#d40202">*</font></th>
<th width="110" rowspan="2">Функции</th>
</tr>
<tr>
<th>сегодня</th>
<th>вчера</th>
</tr>
<tr >
<td align="center">123275</td>
<td><a href="index.php?cf=stat-statmysitefull&sid=123275"><img src="ico/information.png" width="16" height="16" border="0" alt="Подробно по сайту"></a> <font style="font-size: 13px;">111</font> <br><a href="111" target="_blank" class="bluelink">http://futajiki.narod.ru</a></td>
<td align="center"><img class="icon" src="images/img10small.gif" align="middle" alt="Сайт не проверен"/><!--- 0 ---></td>
<td align="center" nowrap><input type="text" name="spr[123275]" value="0.00" size="5"> <a href="index.php?cf=stat-mysitetop&sid=123275"><img src="ico/currency_dollar.png" width="16" height="16" border="0" alt="Ставки лидеров"></a></td>
<td align="center"><a href="index.php?cf=stat-statmysite&sid=123275" class="bluelink">0</a></td>
<td align="center"><a href="index.php?cf=stat-statmysitel&sid=123275" class="bluelink">0</a></td>
<td align="center">
<table cellspacing="1" cellpadding="0">
<tr>
<td><a href="index.php?cf=akk-viewmysites&sid=123275"><img src="images/watch.gif" alt="Получить код,_для блока ссылок" width="19" height="16" border="0" align="middle" class="icon"></a></td>
<td><a href="index.php?cf=akk-veditmysites&sid=123275"><img src="images/img08small.gif" alt="Настроить блок ссылок" width="16" height="16" border="0" align="middle" class="icon"></a></td>
<td><a href="index.php?cf=akk-editmysites&sid=123275"><img src="images/img02small.gif" alt="Редактировать сайт" width="16" height="16" border="0" align="middle" class="icon"></a></td>
<td><a href="index.php?cf=akk-delmysites&sid=123275"><img src="images/img03small.gif" alt="Удалить сайт" width="16" height="16" border="0" align="middle" class="icon"></a></td>
</tr>
</table>
</td>
</tr> <tr class="gray">
<td align="center">128613</td>
<td><a href="index.php?cf=stat-statmysitefull&sid=128613"><img src="ico/information.png" width="16" height="16" border="0" alt="Подробно по сайту"></a> <font style="font-size: 13px;">111</font> <br><a href="111/" target="_blank" class="bluelink">http://exchangeobmen.narod.ru/</a></td>
<td align="center"><img class="icon" src="images/img11small.gif" align="middle" alt="Сайт проверен_и одобрен"/><!--- 0 ---></td>
<td align="center" nowrap><input type="text" name="spr[128613]" value="0.00" size="5"> <a href="index.php?cf=stat-mysitetop&sid=128613"><img src="ico/currency_dollar.png" width="16" height="16" border="0" alt="Ставки лидеров"></a></td>
<td align="center"><a href="index.php?cf=stat-statmysite&sid=128613" class="bluelink">0</a></td>
<td align="center"><a href="index.php?cf=stat-statmysitel&sid=128613" class="bluelink">0</a></td>
<td align="center">
<table cellspacing="1" cellpadding="0">
<tr>
<td><a href="index.php?cf=akk-viewmysites&sid=128613"><img src="images/watch.gif" alt="Получить код,_для блока ссылок" width="19" height="16" border="0" align="middle" class="icon"></a></td>
<td><a href="index.php?cf=akk-veditmysites&sid=128613"><img src="images/img08small.gif" alt="Настроить блок ссылок" width="16" height="16" border="0" align="middle" class="icon"></a></td>
<td><a href="index.php?cf=akk-editmysites&sid=128613"><img src="images/img02small.gif" alt="Редактировать сайт" width="16" height="16" border="0" align="middle" class="icon"></a></td>
<td><a href="index.php?cf=akk-delmysites&sid=128613"><img src="images/img03small.gif" alt="Удалить сайт" width="16" height="16" border="0" align="middle" class="icon"></a></td>
</tr>
</td>
</tr> <tr >
<td> </td>
<td colspan="3" align="center"><input type="submit" value="Сохранить ставки"></td>
<td colspan="2"> </td>
</tr></table> </form>
[/сode] | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 22:03)
| | скажите, зачем эта простыня html кода?
Html ни отправляет запросов, ни принимает...
Не знаю, как там работает на wmlink.ru, но можно сделать при помощи jquery и ajax
когда поле ввода теряет фокус при помощи ajax делаете запрос к базе на изменение определённо поля
php вряд ли сможет определить, какое поле формы Вы изменили)
можно конечно заморочиться, попробовать сделать на php это, использовать сессии, но это будет через чур, как мне кажется. | |
|
|
|
|
|
|
|
для: Slo_Nik
(07.03.2013 в 22:14)
| | к стати, хорошая подсказка, спасибо.
Но мне кажется истина гдето рядом.
<input type="text" name="date['.$row['id'].']" value="'.$row['price'].'" size="3">
|
осталось только вытащить значения $_POST['date']и будет решение | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 22:25)
| | если Вы про реализацию в php, то это была не хорошая подсказка, а полёт бурной фантазии
не совокупляйте себе мозК и делайте это при помощи jquery и ajax
так будет проще и я думаю лучше | |
|
|
|
|
|
|
|
для: Slo_Nik
(07.03.2013 в 23:30)
| | Я наверо некоректно выразил свою мысль
Можно перезаписать в базу данные этой строки
<input type="text" name="date" value="'.$row['price'].'" size="3">
<input type="hidden" name="sel" value="'.$row['id'].'"/>
|
в каждом из циклов.
просто нужно определить какое значение date перезаписать в строке с определённым id принадлежащему этой же строке | |
|
|
|
|
|
|
|
для: amsokol
(07.03.2013 в 23:54)
| | Ясно, значит здесь все такие же гении в php как и я.
Невозможного не бывает. | |
|
|
|
|
|
|
|
для: amsokol
(08.03.2013 в 21:12)
| | Насчет гениев не знаю, а вот насколько гениален ваш код судить трудно - текста написано много, а читать не охота, потому как он не оформлен как код и не имеет подсветки. Поэтому трудно проследить за вашей мыслью, а скорее не охота следить за ней, а значит многие просто не станут вам отвечать.
Либо обрамляйте код, при чем выставляя не обязательно весь, а только тот, из которого можно судить о задаче решаемой, либо опишите обычными словами суть вопроса - чего вы хотите. Глядишь и появятся гении на вашу задачу. | |
|
|
|
|
|
|
|
для: confirm
(08.03.2013 в 21:26)
| | Смысл вот в чём:
есть таблица бд,
error_reporting(E_ALL);
$ap = mysql_query("SELECT * FROM `url` WHERE `user`='$name' ORDER BY `id`")or die(mysql_error());
|
В цикле вытаскиваем строчки в форму
?>
<form action="<?=$servname;?>users/office.php?ci=my_url" method="POST" name="es" id="es">
<input type="hidden" name="upr" value="akk-smysites">//значение для проверки существования переменной после отправки формы
<?php
$a=0;
while ($row = mysql_fetch_array($ap))
{
$a++
echo'
<tr >
<td>'.$row['id'].'</td>
<input type="hidden" name="sel['.$a.']" value="'.$row['id'].'" />
<td><a href="'.$row['surl'].'">'.$row['sname'].'</a></td>
<td><input type="text" name="date['.$row['price'].']" value="'.$row['price'].'" size="3"></td>';
};
?>
<td>
<input type="submit" value="Сохранить"></td>
</tr></table
|
При изменение значения поля date
Необходимо подключиться к бд и перезаписать изменения
if(isset($_POST['upr']))
{
if($_POST['upr']=="akk-smysites")
{
$row=mysql_query("UPDATE url SET price='$newpryce' WHERE `id`='$im'")or die(mysql_error());
}
else
{
echo'<br><p align="center"><b><font color="red">Неверный формат запроса!</font></b></p>';
}
}
|
Есть проблема, выводится N строчек формы, как определить как изменение значения поля date привязать к id, тоесть что куда записывать?????
Подскажите правильное решение | |
|
|
|
|
|
|
|
для: amsokol
(08.03.2013 в 22:25)
| | я же Вам писал, используйте jquery + ajax, не морочьте голову себе | |
|
|
|
|
|
|
|
для: Slo_Nik
(08.03.2013 в 22:41)
| | хочется в php сделать | |
|
|
|
|
|
|
|
для: amsokol
(08.03.2013 в 22:25)
| | 1. Если переменная $name, подставляемая в запрос к базе, это просто присвоение полученного значения GET/POST запроса этой переменной, а не обработанное значение, то вы рискуете получить SQL-инъекцию.
2. Функция mysql_fetch_array() по умолчанию (без указания второго ее аргумента) возвращает два идентичных набора данных, один из которых это ассоциативный массив, а второй тот же массив, но индексный. Это не так страшно, если оперировать малым объемом данных, но даже в этом случае вы заставляете впустую работать SQL запрашивая данные вами не используемые. А уж тем более это чревато излишними издержками, если это большой объем данных. К тому же, не понимание этого бывает и причиной ошибок, которые "программист" не может объяснить для себя - "и от куда это взялося...?"
Если вы используете ассоциативные данные, то либо используйте вместо функции mysql_fetch_array() функцию mysql_fetch_assoc(), либо используя mysql_fetch_array(), указывайте вторым аргументом необходимые вам данные, для ассоциативных это флаг MYSQL_ASSOC - $row = mysql_fetch_array($ap, MYSQL_ASSOC)
3. Зачем в форме поля
<input type="hidden" name="sel['.$a.']" value="'.$row['id'].'" />?
Ведь по идее поле
<input type="text" name="date['.$row['price'].']" value="'.$row['price'].'" size="3">
как раз и должно содержать в имени не $row['price'], а $row['id'], которое и "привяжет" эти данные к нужной записи в базе. Тем более в обработке полученной формы даже и упоминания нет на ключ "sel". | |
|
|
|
|
|
|
|
для: confirm
(08.03.2013 в 22:49)
| | Поменял
<input type="text" name="date['.$row['id'].']" value="'.$row['price'].'" size="3">
а в оброботке проверил
<?php
if(isset($_POST['upr']))
{
if($_POST['upr']=="akk-smysites")
{
$im=key($_POST['date']);
$newpryce=$_POST['date'];
echo$im ;
echo$newpryce;
}
?>
|
вместо $im вписывается значение id только первой строки в бд
а вместо $newpryce показывает что массив Array | |
|
|
|
|
|
|
|
для: amsokol
(08.03.2013 в 23:07)
| | Я вам первым пунктом указывал, что необработанные входные данные, это гарантия взлома вашего сайта, через базу данных. Тем не менее вы продолжаете гнуть свое - что пришло от пользователя, то и подставляете в запрос.
Если у вас есть форма с такими полями:
<form method="post">
<input name="date[1]" value="value 1" />
<input name="date[2]" value="value 2" />
<input name="date[3]" value="value 3" />
<input type="submit" value="Send" />
</form>
|
То выполнив вывод полученного POST массива, вы получите следующее:
Array
(
[date] => Array
(
[1] => value 1
[2] => value 2
[3] => value 3
)
)
|
Из чего видно, что это ровно то, что вам и нужно. Только key($_POST['date']) вернет первый ключ этого массива, а чтобы получить все, нужно обойти этот массив в цикле, и не просто получать ключи и значения, а обработать их для безопасной подстановки их в запрос:
а) дли значений integer приводить к этому значению,
б) а строковые значения экранировать функцией mysql_real_escape_string.
Можно сразу это сделать обработав весь входной массив так:
<?
$date = array_combine(array_map('intval', array_keys($_POST['date'])), array_map('mysql_real_escape_string', $_POST['date']));
print_r($date);
?>
результатом будет массив с безопасными данными
Array
(
[1] => value 1
[2] => value 2
[3] => value 3
)
содержащими ключи ваших записей в базе и значениями для обновления
|
Можно воспользоваться для этого и функциями фильтрации входных данных.
Остается просто в цикле обхода этого массива подставлять его ключи и значения в запрос на обновление. | |
|
|
|
|
|
|
|
для: confirm
(09.03.2013 в 00:03)
| | Спасибо за подсказку с array.
Завтра буду пробовать, а про безопасность я позаботился сразу, только в примере не писал, $pryce будет содержать числа типа 0,9 и проверка уже стоит чтоб число было кратно 0,1 и исправлять его скрипт будет если не кратно 0.1 то прибавлять в большую сторону не более 3 | |
|
|
|
|
|
|
|
для: confirm
(09.03.2013 в 00:03)
| | Спасибо, всё работает
я обошел массив и перезапись в цикле и УРААА!
<?PHP
error_reporting(E_ALL);
$ap = mysql_query("SELECT * FROM `url` WHERE `user`='$name' ORDER BY `id`")or die(mysql_error());
if(isset($_POST['upr']))
{
if($_POST['upr']=="akk-smysites")
{
$im = array_combine(array_map('intval', array_keys($_POST['date'])), array_map ('mysql_real_escape_string', $_POST['date']));
while (list($k,$v) = each($im))
{
mysql_query("UPDATE url SET price='$v' WHERE `id`='$k'")or die(mysql_error());
}
}
$ap = mysql_query("SELECT * FROM `url` WHERE `user`='$name' ORDER BY `id`")or die(mysql_error());
}
else
{
echo'<br><p align="center"><b><font color="red">Неверный формат запроса!</font></b></p>';
}
?>
|
Использовав условие для цикла list() и each()
Вот Мы с вами и доказали, что и это можно сделать средствами PHP
Спасибо всем участникам
Тема закрыта | |
|
|
|
|
|
|
|
для: amsokol
(09.03.2013 в 02:10)
| | Да доказывать то собственно было нечего, и ежу было понятно, что можно, надо было только хорошо подумать и даже бы темы этой не возникло.
Странна только логика - если отсутствует в полученных данных ключ 'upr', то это означает, что вам шлют левую форму. Тогда какой смысл в этом сообщении - "Неверный формат запроса!"? Какой формат и какого запроса? Да и кому, если это может и робот шалить?
... or die(mysql_error()); - это только для локальной отладки. Негоже вываливать возможные ошибки на страницах рабочих - вряд ли они понятны пользователю, а вот потенциальным вредителям вашим большой подарочек для анализа. Так что не поступайте так, а пишите так, чтобы не править потом все перед помещением на сервер. | |
|
|
|
|
|
|
|
для: confirm
(09.03.2013 в 02:23)
| | это образец кода, весь же я писать сюда не буду, есть проверка на присутствие переменной и его значение при нажатии на sabmit, и разумеется показ ошибок это для отладки скрипта, необходимо было допиться всего лиш одного, чтобы база перезаписывалась. | |
|
|
|
|
|
|
|
для: amsokol
(09.03.2013 в 12:13)
| | Ну если так.... Но все равно конструкция, логика, должна "вылепливаться" на начальных стадиях, а у вас сейчас так:
запрос запрос на выборку к базе //уже не понятно для чего
если есть ключ
то продолжаем
если ключ Х равен условию //а почему не проверить это сразу с ключом проверяемым ранее?
то обновляем
и вновь непонятный идентичный запрос на выборку к базе
Кстати, можно просто foreach() без вызова целого сборища ) | |
|
|
|
|
|
|
|
для: confirm
(09.03.2013 в 12:36)
| | Первый запрос, чтобы вывести записанные в ней значения, для подстановки в форму, которые в последствие будут изменяться и перезаписываться, последний запрос, чтобы обновить данные после перезаписи для подстановку в форму | |
|
|
|
|
|
|
|
для: amsokol
(09.03.2013 в 18:10)
| | Понятно, ну значит не приводите их оторванными от контекста, иначе получается, что они впустую здесь присутствуют. ) | |
|
|
|
|
|
|
|
для: confirm
(09.03.2013 в 18:19)
| | просто первый запрос к базе должен быть в любом случае независимо есть ли ключ проверки или нет если страница загрузилась, так как эта страница инклудится после нажатия на странице личного кабинета ссылки мои сайты. А что касается проверки наличия ключа и проверки его соответствия, мне просто так удобнее. Может быть foreach() и проще, но я выбрал первым что в голову пришло в этой ситуации | |
|
|
|
|
|
|
|
для: amsokol
(09.03.2013 в 18:25)
| | Если о проще, тогда так:
<?
if(isset($_POST['upr']) && $_POST['upr']=="akk-smysites") {
foreach($_POST['date'] as $key=>$val) {
if($key=(int)$key) mysql_query("UPDATE url SET price='".mysql_real_escape_string($val)."' WHERE `id`=".$key);
//здесь можно проверить и значение $val на допустимость
//при этом похоже, что это float значение
}
$ap = mysql_query("SELECT * FROM `url` WHERE `user`='$name' ORDER BY `id`")or die(mysql_error());
} else "Error message";
|
| |
|
|
|
|
|
|
|
для: amsokol
(08.03.2013 в 21:12)
| | Извини но у тебя на голове ветер
Хочеш понять РНР начни от сюда http://softtime.ru/php5/?id_article=117 | |
|
|
|
|
|
|
|
для: Jovidon
(08.03.2013 в 21:35)
| | я понимаю php но не проффи | |
|
|
|