[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: получить нужные данные
NoCash
добрый день уважаемые форумчане
столкнулся с такой проблеммой. имеется форма где из бызы вытаскиваются значения в табличку происходит это с помощью while. напротив каждой строки имеется кнопка редактировать. при нажатии появляется такая же форма только с инпутами вместо таблицы что бы значения можно было редактировать. а вот теперь сам вопрос как сделать так что бы в инпуты вбивались значения имеено той записи напротив которой была нажата кнопочка редактировать? в моем случае значения вбиваются только последней записью из базы. вот код

$v1="";
$v2="";

if (isset($_POST['this']) && $_POST['this'] == 2) $v1 = "display:none"; else $v2 = "display:none";
$text ="<form name='manager' enctype='multipart/form-data' method='post' action='' class='border' style='border:0;float:top; $v1'>
<table class='border:1' style='width:100%'>
<tr><td class='forumheader3'>отдел</td><td class='forumheader3'>город</td>
<td class='forumheader3'>улица</td><td class='forumheader3'>дом</td>
<td class='forumheader3'>сайт</td><td class='forumheader3'>деск</td>
<td class='forumheader3'>контактное лицо</td>
<td class='forumheader3'>контактный тел</td></tr> "
;
$sql -> db_Select("ab_cat", "*", "");
while($row = $sql -> db_Fetch())
{
$cat_id = $row['cat_id'];
$cat_name = $row['cat_name'];
$cat_city=$row['cat_city'];
$cat_street=$row['cat_street'];
$cat_home=$row['cat_home'];
$cat_web=$row['cat_web'];
$cat_desc=$row['cat_desc'];
$cat_con=$row['cat_con'];
$cat_tel=$row['cat_tel'];
$cat_check=$row['cat_check'];
$sql2 -> db_Select("ab_gnl", "*", "gnl_cat=$cat_id");
while($row = $sql2 -> db_Fetch())
{
$gnl_id = $row['gnl_id'];
$gnl_cat = $row['gnl_cat'];
$gnl_division=$row['gnl_division'];
$gnl_phone=$row['gnl_phone'];
$gnl_mail=$row['gnl_mail'];
$text .="<input tipe='hidden' name='gnl_id' value='$gnl_id'>";
}
if ($cat_check=="no"){


$text .="<tr><td class='forumheader3'>$cat_name</td><td class='forumheader3'>$cat_city</td>
<td class='forumheader3'>
$cat_street</td><td class='forumheader3'>$cat_home</td>
<td class='forumheader3'>
$cat_web</td><td class='forumheader3'>$cat_desc</td>
<td class='forumheader3'>
$cat_con</td><td class='forumheader3'>$cat_tel</td>
<input name='this' type=hidden value=2>
<tr><td class='forumheader3' colspan=8>

<input type='submit' class='submit' name='add_subcat' value='редактировать' style='border:0;float:right'></td></tr>"
;
}
}

$text .="</table>";
$text .="</form>";




Спустя 13 минут, 55 секунд (26.05.2010 - 13:06) Rand написал(а):
Лень разбираться в коде, но смысл такой: К каждой ссылке "редактировать" приписываешь id записи напротив которой она стоит. В разделе где ты выводишь инпуты - выполняешь запрос $query="SELECT * FROM table WHERE id='".$id."'" и выводишь результат. Последняя запись у тебя выводится, т.к. ты делаешь выборку из всех записей, а потом в while прокручиваешь их все до последней.

Спустя 3 минуты, 2 секунды (26.05.2010 - 13:09) NoCash написал(а):
Rand т.е решать проблемму придется ссылкой а не кнопокой?

Спустя 14 минут, 37 секунд (26.05.2010 - 13:24) NoCash написал(а):
Цитата (Rand @ 26.05.2010 - 10:06)
Последняя запись у тебя выводится, т.к. ты делаешь выборку из всех записей, а потом в while прокручиваешь их все до последней.

выборку я делаю как раз не из всех записей. делаю ее вот так
$sql2 -> db_Select("ab_gnl", "*", "gnl_cat=$cat_id");

Спустя 3 минуты, 38 секунд (26.05.2010 - 13:27) Rand написал(а):
Проблема кнопки - то что у неё поле value уже заполнено )) Поэтому да.

Спустя 8 минут, 5 секунд (26.05.2010 - 13:35) Rand написал(а):
Цитата (NoCash @ 26.05.2010 - 10:24)
Цитата (Rand @ 26.05.2010 - 10:06)
Последняя запись у тебя выводится, т.к. ты делаешь выборку из всех записей, а потом в while прокручиваешь их все до последней.

выборку я делаю как раз не из всех записей. делаю ее вот так
$sql2 -> db_Select("ab_gnl", "*", "gnl_cat=$cat_id");


А что gnl_cat у тебя уникальный для всех записей? если нет, то выбирается несколько записей. Можешь показать ещё кусок где ты форму для редактирования выводишь?

Спустя 4 минуты, 4 секунды (26.05.2010 - 13:39) NoCash написал(а):
$gnl_id уникальное а $gnl_cat равен $cat_id и оно не уникальное. по логике
получается так: в одной организации есть нелько отделов вот отдел это $gnl_id а $gnl_cat и cat_id это организация.

Спустя 13 минут, 24 секунды (26.05.2010 - 13:53) linuxoid написал(а):
<input name='this' type=hidden value=2> пусть здесь в value записывается уникальное значение (ID). по нажатии редактировать в новой форме сделай запрос где ID=$_POST['this'].

Спустя 4 минуты, 15 секунд (26.05.2010 - 13:57) NoCash написал(а):
linuxoid ща попробуем)


Спустя 2 минуты, 54 секунды (26.05.2010 - 14:00) Rand написал(а):
Всё, разобрался. Ты же сохраняешь $gnl_id в скрытое поле, а для каждой записи у тебя своя форма. По нажатии кнопки передастся $_POST['gnl_id']. В скрипте где будет выводится инпут надо будет написать что-то вроде
$sql -> db_Select("ab_gnl", "*", "gnl_id=".$_POST['gnl_id']);
$row = $sql -> db_Fetch();
$gnl_id = $row['gnl_id'];
$gnl_cat = $row['gnl_cat'];
$gnl_division=$row['gnl_division'];
$gnl_phone=$row['gnl_phone'];
$gnl_mail=$row['gnl_mail'];
$text.="<input type='text' name='gnl_cat' value='$gnl_cat'><input type='text' name='gnl_division' value='$gnl_division'>"

Это если тебе отдел надо отредактировать, если покажешь часть с редактированием может смогу больше сказать, что там у тебя.

Спустя 22 минуты, 29 секунд (26.05.2010 - 14:23) NoCash написал(а):
if (isset($_POST['ok'])) {
$sql -> db_Update("ab_cat", "cat_id='$cat_id', cat_name='$cat_name', cat_city='$cat_city', cat_street='$cat_street', cat_home='$cat_home',
cat_desc='
$cat_desc', cat_web='$cat_web', cat_check='yes', cat_con='$cat_con', cat_tel='$cat_tel' WHERE cat_id='$cat_id'");
$sql2 -> db_Update("ab_gnl", "gnl_id='$gnl_id1', gnl_cat='$cat_id', gnl_phone='".($_POST['gnl_phone1'])."', gnl_mail='".($_POST['gnl_mail1'])."', gnl_division='".($_POST['gnl_division1'])."' WHERE gnl_cat='$cat_id' AND gnl_id='$gnl_id1' ")or die(mysql_error());
}

вот так я редактирую в базе.
то что вы предложили похоже не совсем мне подходит. gnl_id то у нас уникальное но выводиться то должно несколько значений для редактирования. согласитесь отделов же у предприятия может быть намного больше чем одно

Спустя 24 минуты, 34 секунды (26.05.2010 - 14:47) Rand написал(а):
Т.е. при нажатии на кнопку редактирование ты редактируешь предприятие и все его отделы, я правильно понял?
Тогда нужно в hidden записывать $cat_id. А после нажатия кнопки делать так:
$sql -> db_Select("ab_cat", "*", "cat_id=".$_POST['cat_id']);
$row = $sql -> db_Fetch();
//заполняем инпуты для организации
$sql2 -> db_Select("ab_gnl", "*", "gnl_cat=".$_POST['cat_id']
while($row = $sql2 -> db_Fetch()) {
//заполняем инпуты для отделов, name указываем как gnl_id[],gnl_cat[] и т.д
}

Обновление отделов делать в цикле, перебирая массив gnl_id[]

Спустя 14 минут, 48 секунд (26.05.2010 - 15:02) NoCash написал(а):
написал вот так
$sql2 -> db_Select("ab_gnl", "*", "gnl_cat=".$_POST['cat_id']."");
while($row = $sql2 -> db_Fetch()){
//заполняем инпуты для отделов, name указываем как gnl_id[],gnl_cat[] и т.д
/*while($row = $sql -> db_Fetch())
{*/

$gnl_id = $row['gnl_id'];
$gnl_cat = $row['gnl_cat'];
$gnl_division=$row['gnl_division'];
$gnl_phone=$row['gnl_phone'];
$gnl_mail=$row['gnl_mail'];
$text .="
<tr><input name='gnl_id[]' type='hidden' value='
$gnl_id'><td class='forumheader3' ><input type='text' name='gnl_division[]' value='$gnl_division' size='40%'></td>
<td class='forumheader3' ><input type='text' name='gnl_phone[]' value='
$gnl_phone'></td>
<td class='forumheader3' ><input type='text' name='gnl_mail[]' value='
$gnl_mail'><input type='submit' class='submit' name='ok[0]' value='принять' style='border:0;float:right'></td></tr>";
}

инпуты где организации заполняет на ура. а вот там где отделы не выводит ни одного инпута sad.gif

Спустя 17 минут, 41 секунда (26.05.2010 - 15:20) NoCash написал(а):
 $sql2 -> db_Select("ab_gnl", "*", "gnl_cat=$cat_id");
while($row = $sql2 -> db_Fetch()){
$gnl_id = $row['gnl_id'];
$gnl_cat = $row['gnl_cat'];
$gnl_division=$row['gnl_division'];
$gnl_phone=$row['gnl_phone'];
$gnl_mail=$row['gnl_mail'];
блабла бла
}

с такой записью все хорошо заполняется.)
но проблемма с обновлением имеется. пытаюсь обновить вот так
for ($i=0;$i<=sizeof($_POST["gnl_id"]);$i++){
for ($i=0;$i<=sizeof($_POST["gnl_division"]);$i++)
for ($i=0;$i<=sizeof($_POST["gnl_mail"]);$i++)
$sql2 -> db_Update("ab_gnl", "gnl_id='".($_POST['gnl_id'][$i])."', gnl_cat='$cat_id', gnl_phone='".($_POST['gnl_phone'][$i])."', gnl_mail='".($_POST['gnl_mail'][$i])."', gnl_division='".($_POST['gnl_division'][$i])."' WHERE gnl_cat='$cat_id'")or die(mysql_error());
}
}

Спустя 1 минута, 7 секунд (26.05.2010 - 15:21) NoCash написал(а):
самое забавное что никаких ошибок не говорят просто шапка и пустая страница выходит после обновления в базе. а когда в базу заглядываешь никаких изменений нет

Спустя 9 минут, 23 секунды (26.05.2010 - 15:30) Rand написал(а):
хватит и одного цикла:
for($i=0;$i<=sizeof($_POST['gnl_id']);$i++) {
$sql2 -> db_Update("ab_gnl", "gnl_id='".($_POST['gnl_id'][$i])."', gnl_cat='$cat_id', gnl_phone='".($_POST['gnl_phone'][$i])."', gnl_mail='".($_POST['gnl_mail'][$i])."', gnl_division='".($_POST['gnl_division'][$i])."' WHERE gnl_cat='$cat_id'") or die(mysql_error());
}

И проверь существует ли вообще $_POST['gnl_id'], а то у тебя $_POST['cat_id'] тоже куда-то делся, непонятно. Если существует sizeof выведи отдельно, посмотри.

Спустя 7 минут, 45 секунд (26.05.2010 - 15:38) NoCash написал(а):
в вашем случае ругается на редактирование Duplicate entry '0' for key 1
добавляю
WHERE gnl_cat='$cat_id' AND gnl_id='".($_POST['gnl_id'][$i])."'

ничево не редактирует(

Спустя 2 минуты, 47 секунд (26.05.2010 - 15:41) Rand написал(а):
уникальный ключ не обновляй (убери "gnl_id='".($_POST['gnl_id'][$i])."', из запроса)
в WHERE лучше просто
WHERE gnl_id='".($_POST['gnl_id'][$i])."'


gnl_cat - это же фирма? если её изменять не собираетесь, то тоже можно не указывать:
for($i=0;$i<=sizeof($_POST['gnl_id']);$i++) {
$sql2 -> db_Update("ab_gnl", "gnl_phone='".($_POST['gnl_phone'][$i])."', gnl_mail='".($_POST['gnl_mail'][$i])."', gnl_division='".($_POST['gnl_division'][$i])."' WHERE gnl_id='".($_POST['gnl_id'][$i])."'") or die(mysql_error());
}

Спустя 6 минут, 32 секунды (26.05.2010 - 15:47) NoCash написал(а):
хм( значения почему то приходят пустыми. написал print_r($_POST['gnl_phone')
значение не пустое выводит те занчения которые в инпут были вписаны

Спустя 5 минут, 29 секунд (26.05.2010 - 15:53) Rand написал(а):
В базе что-ли ячейки пустыми становятся? Последний вариант я писал, также? И по моему, переменные в скобки брать не обязательно.

Спустя 11 минут, 1 секунда (26.05.2010 - 16:04) NoCash написал(а):
for($i=0;$i<=sizeof($_POST['gnl_id']);$i++) {
$sql2 -> db_Update("ab_gnl", "gnl_phone='".($_POST['gnl_phone'][$i])."', gnl_mail='".($_POST['gnl_mail'][$i])."', gnl_division='".($_POST['gnl_division'][$i])."' WHERE gnl_id='".($_POST['gnl_id'][$i])."'") or die(mysql_error());
}

если так то не редактирует ничево если убрать условие WHERE gnl_id='".($_POST['gnl_id'][$i])." то все ячейки придут пустыми в базу

Спустя 9 минут, 20 секунд (26.05.2010 - 16:13) Rand написал(а):
Если честно, даже не знаю уже в чем может быть подвох. Если не редактирует с условием, то либо в переменной gnl_id дело либо ещё в чем-то (может в методе db_Update - уже не знаю к чему придраться).
Сделай в этом цикле
echo "gnl_phone='".($_POST['gnl_phone'][$i])."', gnl_mail='".($_POST['gnl_mail'][$i])."', gnl_division='".($_POST['gnl_division'][$i])."' WHERE gnl_id='".($_POST['gnl_id'][$i])."'";

Увидишь как запросы на самом деле выглядят.

Спустя 18 часов, 30 минут, 42 секунды (27.05.2010 - 10:44) NoCash написал(а):
хы оказалась все проще нужно было просто убрать скобки в записях "gnl_phone='".($_POST['gnl_phone'][$i])."'
правда в таком случае редактируется только последняя запись
т.е если изменить несколько инпутов(отделов) то изменения в базе будут только у последднего отдела телефона и мыла(

Спустя 49 минут, 32 секунды (27.05.2010 - 11:33) Rand написал(а):
biggrin.gif Ну так я же писал
Цитата
И по моему, переменные в скобки брать не обязательно.
Надо было попробовать сразу. Тестируй, смотри сколько элементов в массиве $_POST['gnl_id'] (ты же цикл и WHERE делаешь по нему? если там один элемент, то и запись будет редактироваться только одна), выводи текст запроса при каждой итерации.

Спустя 6 минут, 5 секунд (27.05.2010 - 11:39) NoCash написал(а):
да да вывел $_POST['gnl_id'] приходит только одно значение(

Спустя 27 минут (27.05.2010 - 12:06) Rand написал(а):
Значит надо искать ошибку в месте где формируется массив. Ещё есть небольшая вероятность, что он у тебя где-то перезаписывается, проверяй условие if(isset($_POST['ok'])) сразу после подключения классов и "служебных файлов", если такие есть. Или выложи скрипт полностью.

Спустя 16 минут, 22 секунды (27.05.2010 - 12:23) NoCash написал(а):
if((isset($qs[0]) && $qs[0] == "manager")){
$items_action = $_POST["items_action"];
$cat_id = $_POST["cat_id"];
$cat_name = $_POST["cat_name"];
$cat_city = $_POST["cat_city"];
$cat_street = $_POST["cat_street"];
$cat_home = $_POST['cat_home'];
$cat_web=$_POST['cat_web'];
$cat_con=$_POST['cat_con'];
$cat_tel=$_POST['cat_tel'];
if (isset($_POST['ok'])) {
print_r($_POST['gnl_mail']);
print_r($_POST["gnl_phone"]);
print_r($_POST["gnl_division"]);
$sql -> db_Update("ab_cat", "cat_id='$cat_id', cat_name='$cat_name', cat_city='$cat_city', cat_street='$cat_street', cat_home='$cat_home',
cat_desc='
$cat_desc', cat_web='$cat_web', cat_check='yes', cat_con='$cat_con', cat_tel='$cat_tel' WHERE cat_id='$cat_id'");
for($i=0;$i<=sizeof($_POST['gnl_phone']);$i++) {
$sql2 -> db_Update("ab_gnl", "gnl_phone='".$_POST['gnl_phone'][$i]."', gnl_mail='".$_POST['gnl_mail'][$i]."', gnl_division='".$_POST['gnl_division'][$i]."' WHERE gnl_id='".$_POST['gnl_id1'][$i]."'") or die(mysql_error());
}
}

//if (isset($_POST[''])) {
if ($items_action == "delete"){
$sql -> db_Delete("ab_gnl", "gnl_id='$gnl_id'");
}

$v1="";
$v2="";

if (isset($_POST['this']) && $_POST['this'] == 2) $v1 = "display:none"; else $v2 = "display:none";
$text ="<form name='manager' enctype='multipart/form-data' method='post' action='' class='border' style='border:0;float:top; $v1'>
<table class='border:1' style='width:100%'>
<tr><td class='forumheader3'>отдел</td><td class='forumheader3'>город</td><td class='forumheader3'>улица</td><td class='forumheader3'>дом</td><td class='forumheader3'>сайт</td><td class='forumheader3'>деск</td><td class='forumheader3'>контактное лицо</td><td class='forumheader3'>контактный тел</td></tr> "
;
$sql -> db_Select("ab_cat", "*", "");
while($row = $sql -> db_Fetch())
{
$cat_id = $row['cat_id'];
$cat_name = $row['cat_name'];
$cat_city=$row['cat_city'];
$cat_street=$row['cat_street'];
$cat_home=$row['cat_home'];
$cat_web=$row['cat_web'];
$cat_desc=$row['cat_desc'];
$cat_con=$row['cat_con'];
$cat_tel=$row['cat_tel'];
$cat_check=$row['cat_check'];

if ($cat_check=="no")
$text .="<tr>
<td class='forumheader3'>
$cat_name</td><td class='forumheader3'>$cat_city</td>
<td class='forumheader3'>
$cat_street</td><td class='forumheader3'>$cat_home</td>
<td class='forumheader3'>
$cat_web</td><td class='forumheader3'>$cat_desc</td>
<td class='forumheader3'>
$cat_con</td><td class='forumheader3'>$cat_tel</td>
<input name='this' type=hidden value=2>
<tr><td class='forumheader3' colspan=8>

<input type='submit' class='submit' name='add_subcat' value='редактировать' style='border:0;float:right'></td></tr>"
;
}
$text .="</table>";
$text .="</form>";
//-----------------
$text .="<form name='manager2' enctype='multipart/form-data' method='post' action='' class='border' style='border:0;float:top; $v2'>
<input name='this' type='hidden' value='1'>

<input name='cat_id' type='hidden' value='
$cat_id'>
<table class='border:1' style='width:100%'> "
;
$text .="<tr><td class='forumheader3'>".AB_NAME_1."</td><td class='forumheader3'><input type=text name='cat_name' value='$cat_name'></td></tr>
<tr><td class='forumheader3'>вид деятельности</td><td class='forumheader3'><input type=text name='cat_desc' value='
$cat_desc'></td></tr>
<tr><td class='forumheader3'>"
.AB_NAME_2."</td><td class='forumheader3'><input type=text name='cat_city' value='$cat_city'></td></tr>
<tr><td class='forumheader3' class='forumheader3'>"
.AB_NAME_3."</td><td class='forumheader3'><input type=text name='cat_street' value='$cat_street'></td></tr>
<tr> <td class='forumheader3'>"
.AB_NAME_4."</td><td class='forumheader3'><input type=text name='cat_home' value='$cat_home'></td></tr>
<tr><td class='forumheader3'>сайт</td><td class='forumheader3'><input type=text name='cat_web' value='
$cat_web'></td></tr>
<tr><td class='forumheader3'>контактный лицо</td><td class='forumheader3'><input type=text name='cat_con' value='
$cat_con'></td></tr>
<tr><td class='forumheader3'>контактный телефон</td><td class='forumheader3'><input type=text name='cat_tel' value='
$cat_tel'></td></tr>
</td></tr></table>"
;
$text .="<table id='tab' class='border' style='width:100%'><tr>
<td class='forumheader3' width='40%' >"
.AB_NAME_6."</td>
<td class='forumheader3' width='20%'>"
.AB_NAME_5."</td>
<td class='forumheader3'>"
.AB_NAME_8."</td></tr>";
$sql -> db_Select("ab_gnl", "*", "gnl_cat=$cat_id");
while($row = $sql -> db_Fetch())
{
$gnl_id = $row['gnl_id'];
$gnl_cat = $row['gnl_cat'];
$gnl_division=$row['gnl_division'];
$gnl_phone=$row['gnl_phone'];
$gnl_mail=$row['gnl_mail'];
$text .="
<tr><input type='hidden' name='gnl_id1[0]' value='
$gnl_id'><td class='forumheader3' ><input type='text' name='gnl_division[0]' value='$gnl_division' size='40%'></td>
<td class='forumheader3' ><input type='text' name='gnl_phone[0]' value='
$gnl_phone'></td>
<td class='forumheader3' ><input type='text' name='gnl_mail[0]' value='
$gnl_mail'></td></tr>";
}
$text .="</table>
<input type='submit' class='submit' name='ok' value='принять' style='border:0;float:right'>
<input type='submit' value='отмена' style='border:0;float:right'>"
;
$text .="</td></tr></table></form>";
$caption =AB_MMAN_1;
$ns -> tablerender($caption, $text);

require_once(e_ADMIN."footer.php");
exit;
}

вот так вот это выглядит все вместе)

Спустя 21 минута, 33 секунды (27.05.2010 - 12:44) Rand написал(а):
$text .="
<tr><input type='hidden' name='gnl_id1[0]' value='
$gnl_id'><td class='forumheader3' ><input type='text' name='gnl_division[0]' value='$gnl_division' size='40%'></td>
<td class='forumheader3' ><input type='text' name='gnl_phone[0]' value='
$gnl_phone'></td>
<td class='forumheader3' ><input type='text' name='gnl_mail[0]' value='
$gnl_mail'></td></tr>";
}

заменить на
$text .="
<tr><input type='hidden' name='gnl_id1[]' value='
$gnl_id'><td class='forumheader3' ><input type='text' name='gnl_division[]' value='$gnl_division' size='40%'></td>
<td class='forumheader3' ><input type='text' name='gnl_phone[]' value='
$gnl_phone'></td>
<td class='forumheader3' ><input type='text' name='gnl_mail[]' value='
$gnl_mail'></td></tr>";

и
for($i=0;$i<=sizeof($_POST['gnl_phone']);$i++) {

всё таки логичнее было бы заменить на
for($i=0;$i<=sizeof($_POST['gnl_id1']);$i++) {

и
$sql -> db_Update("ab_cat", "cat_id='$cat_id', cat_name='$cat_name', cat_city='$cat_city', cat_street='$cat_street', cat_home='$cat_home',
cat_desc='
$cat_desc', cat_web='$cat_web', cat_check='yes', cat_con='$cat_con', cat_tel='$cat_tel' WHERE cat_id='$cat_id'");

зачем обновлять id фирмы?

Спустя 6 минут, 48 секунд (27.05.2010 - 12:51) NoCash написал(а):
изначально так и было я уже от без исходности начинаю все перебирать.
сайчас сделал так как вы сказали никаких результатов не дало по пержнему в массиве значение полседних инпутов

Спустя 18 минут, 20 секунд (27.05.2010 - 13:09) Rand написал(а):
Ты что-то перемудрил с формами и их отображением. В форме где кнопка редактировать должен передаваться id фирмы, у тебя этого вообще нет.

Спустя 28 минут, 21 секунда (27.05.2010 - 13:38) NoCash написал(а):
да да недочет) исправил сейчас в массиве все значения записываются но редактирует уже только первые инпуты(

Спустя 29 минут, 48 секунд (27.05.2010 - 14:07) Rand написал(а):
В общем, я это вижу примерно так:
if((isset($qs[0]) && $qs[0] == "manager")){
$items_action = $_POST["items_action"];
if (isset($_POST['ok'])) {
$cat_id = $_POST["cat_id"];
$cat_name = $_POST["cat_name"];
$cat_city = $_POST["cat_city"];
$cat_street = $_POST["cat_street"];
$cat_home = $_POST['cat_home'];
$cat_web = $_POST['cat_web'];
$cat_con = $_POST['cat_con'];
$cat_tel = $_POST['cat_tel'];
$sql -> db_Update("ab_cat", "cat_name='$cat_name', cat_city='$cat_city', cat_street='$cat_street', cat_home='$cat_home',cat_desc='$cat_desc', cat_web='$cat_web', cat_check='yes', cat_con='$cat_con', cat_tel='$cat_tel' WHERE cat_id='$cat_id'");
for($i=0;$i<=sizeof($_POST['gnl_id']);$i++) {
$sql2 -> db_Update("ab_gnl", "gnl_phone='".$_POST['gnl_phone'][$i]."', gnl_mail='".$_POST['gnl_mail'][$i]."', gnl_division='".$_POST['gnl_division'][$i]."' WHERE gnl_id='".$_POST['gnl_id1'][$i]."'") or die(mysql_error());
}
}


if ($items_action == "delete"){
$sql -> db_Delete("ab_gnl", "gnl_id='$gnl_id'");
}

if(!isset($_POST['cat_id'])) {
$text ="<form name='manager' enctype='multipart/form-data' method='post' action='' class='border' style='border:0;float:top;'>
<table class='border:1' style='width:100%'>
<tr><td class='forumheader3'>отдел</td><td class='forumheader3'>город</td><td class='forumheader3'>улица</td><td class='forumheader3'>дом</td><td class='forumheader3'>сайт</td><td class='forumheader3'>деск</td><td class='forumheader3'>контактное лицо</td><td class='forumheader3'>контактный тел</td></tr> "
;
$sql -> db_Select("ab_cat", "*", "");
while($row = $sql -> db_Fetch()) {
$cat_id=$row['cat_id'];
$cat_name=$row['cat_name'];
$cat_city=$row['cat_city'];
$cat_street=$row['cat_street'];
$cat_home=$row['cat_home'];
$cat_web=$row['cat_web'];
$cat_desc=$row['cat_desc'];
$cat_con=$row['cat_con'];
$cat_tel=$row['cat_tel'];
$cat_check=$row['cat_check'];
if($cat_check=="no")
$text.="<tr>
<td class='forumheader3'>
$cat_name</td><td class='forumheader3'>$cat_city</td>
<td class='forumheader3'>
$cat_street</td><td class='forumheader3'>$cat_home</td>
<td class='forumheader3'>
$cat_web</td><td class='forumheader3'>$cat_desc</td>
<td class='forumheader3'>
$cat_con</td><td class='forumheader3'>$cat_tel</td>
<input name='cat_id' type=hidden value='"
.$cat_id."'>
<tr><td class='forumheader3' colspan=8>
<input type='submit' class='submit' name='add_subcat' value='редактировать' style='border:0;float:right'></td></tr>"
;
}
$text.="</table>";
$text.="</form>";
}
else {
$sql -> db_Select("ab_cat", "*", "cat_id=".$_POST['cat_id']);
$row=$sql -> db_Fetch();
$cat_id=$row['cat_id'];
$cat_name=$row['cat_name'];
$cat_city=$row['cat_city'];
$cat_street=$row['cat_street'];
$cat_home=$row['cat_home'];
$cat_web=$row['cat_web'];
$cat_desc=$row['cat_desc'];
$cat_con=$row['cat_con'];
$cat_tel=$row['cat_tel'];
$cat_check=$row['cat_check'];
$text.="<form name='manager2' enctype='multipart/form-data' method='post' action='' class='border' style='border:0;float:top;'>
<input name='cat_id' type='hidden' value='
$cat_id'>
<table class='border:1' style='width:100%'> "
;
$text.="<tr><td class='forumheader3'>".AB_NAME_1."</td><td class='forumheader3'><input type=text name='cat_name' value='$cat_name'></td></tr>
<tr><td class='forumheader3'>вид деятельности</td><td class='forumheader3'><input type=text name='cat_desc' value='
$cat_desc'></td></tr>
<tr><td class='forumheader3'>"
.AB_NAME_2."</td><td class='forumheader3'><input type=text name='cat_city' value='$cat_city'></td></tr>
<tr><td class='forumheader3' class='forumheader3'>"
.AB_NAME_3."</td><td class='forumheader3'><input type=text name='cat_street' value='$cat_street'></td></tr>
<tr> <td class='forumheader3'>"
.AB_NAME_4."</td><td class='forumheader3'><input type=text name='cat_home' value='$cat_home'></td></tr>
<tr><td class='forumheader3'>сайт</td><td class='forumheader3'><input type=text name='cat_web' value='
$cat_web'></td></tr>
<tr><td class='forumheader3'>контактный лицо</td><td class='forumheader3'><input type=text name='cat_con' value='
$cat_con'></td></tr>
<tr><td class='forumheader3'>контактный телефон</td><td class='forumheader3'><input type=text name='cat_tel' value='
$cat_tel'></td></tr>
</td></tr></table>"
;
$text.="<table id='tab' class='border' style='width:100%'><tr>
<td class='forumheader3' width='40%' >"
.AB_NAME_6."</td>
<td class='forumheader3' width='20%'>"
.AB_NAME_5."</td>
<td class='forumheader3'>"
.AB_NAME_8."</td></tr>";
$sql -> db_Select("ab_gnl", "*", "gnl_cat=".$_POST['cat_id']);
while($row = $sql -> db_Fetch()) {
$gnl_id = $row['gnl_id'];
$gnl_cat = $row['gnl_cat'];
$gnl_division=$row['gnl_division'];
$gnl_phone=$row['gnl_phone'];
$gnl_mail=$row['gnl_mail'];
$text.="
<tr><input type='hidden' name='gnl_id1[]' value='
$gnl_id'><td class='forumheader3' ><input type='text' name='gnl_division[]' value='$gnl_division' size='40%'></td>
<td class='forumheader3' ><input type='text' name='gnl_phone[]' value='
$gnl_phone'></td>
<td class='forumheader3' ><input type='text' name='gnl_mail[]' value='
$gnl_mail'></td></tr>";
}
$text .="</table>
<input type='submit' class='submit' name='ok' value='принять' style='border:0;float:right'>
<input type='submit' value='отмена' style='border:0;float:right'>"
;
$text .="</td></tr></table></form>";
}
$caption =AB_MMAN_1;
$ns -> tablerender($caption, $text);
require_once(e_ADMIN."footer.php");
exit;
}

Спустя 55 минут, 54 секунды (27.05.2010 - 15:03) NoCash написал(а):
результат такой же как и в моем втором варианте первый инпут редактирует остальные нет(

Спустя 34 минуты, 58 секунд (27.05.2010 - 15:38) Rand написал(а):
Перед нажатием ок, открой html код и посмотри все
<input type='hidden' name='gnl_id1[]' value='$gnl_id'>
id в value должны быть все разные.
Также перед for -
print_r($_POST['gnl_id']);
элементов должно быть несколько и с разными значениями. Если всё как надо, то дело в запросе, если нет, то в коде, но я не могу сказать где, может посмотрит кто-нибудь свежим глазом, скажет.

P.S: $sql2 - второй объект обязательно создавать?

Спустя 7 минут, 24 секунды (27.05.2010 - 15:46) NoCash написал(а):
нет второй элемент создавать не обязательно) в массиве выводиться все как нужно 0=>отдел1 1=> отдел 2
0=> тел1 1=>тел2
0=> мыло1 1=>мыло2

Спустя 11 минут, 57 секунд (27.05.2010 - 15:58) NoCash написал(а):
уху все спс разобрался)) делов то было как всегда в мелочи лишние [] поставил)))

Спустя 8 минут, 54 секунды (27.05.2010 - 16:07) Rand написал(а):
Ну ты даешь. Поздравляю тогда biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.