Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 00:06 27.06.24 
Компютри и Интернет
   >> PHP
*Кратък преглед

Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема Как да напиша този скриптнови  
Автор hrisunko (Наблюдател)
Публикувано06.05.01 10:36



Идеята ми е да редактирам цялата информация от базата данни наведнъж, като изкарам всички записи и тази графа, която искам да редактирам да бъде <input type=text>.
И после всичко наведнъж да се обнови в базата.

Ето какво имам аз:

$query = "SELECT 1а, 2а, 3а, 4а, 5а FROM bazata ORDER BY 1a";
$result = mysql_query($query);

if ($i = mysql_fetch_array($result)) {
?>
<form method="post" action="file.php?action=submit">
<table width="500">
<?
do {
?>
<tr><td><? echo "$i[0]" ?></td>
<td><? echo "$i[1]" ?></td>
<td><? echo "$i[2]" ?></td>
<td><? echo "$i[3]" ?></td>
<td><input type="text" size="5" name="new1" value="<? echo "$i[4]" ?>"></td>
<td><input type="text" size="2" name="new2" value="<? echo "$i[5]" ?>"></td>
<input type="hidden" name="PrimaryKey" value="<? echo "$i[0]" ?>"></tr>

<?
}
while ($i = mysql_fetch_array($result));
}
?>
<input type="submit" value=" Обновяване ">


И обработката на данните:

$query = "UPDATE bazata SET 1a='$new1', 2a='$new2' WHERE A='$PrimaryKey' ";
$result = mysql_query($query);


Това, което става е че текстовите полета с променливи са с едно и също име и активна остава съответно последната присвоена стойност.
Опитах да променя името на променливите с new1[] и new2[], но след това в обработката не можах да се оправя как да обработи един по един входовете от формуляра.

Дайте идея как да се напише.
Благодаря предварително!



Тема Re: Как да напиша този скрипт [re: hrisunko]  
Автор NastyBUFF (!)
Публикувано06.05.01 13:32



ne mi stana mnogo jasno kakwo se opitwash da postignesh

90% Son of a bitch 10% Angel


Тема Re: Как да напиша този скриптнови [re: NastyBUFF]  
Автор hrisunko (Наблюдател)
Публикувано06.05.01 15:59



Ами искам да спестя време като данните ми от таблицата да ги обновя наведнъж, а не с PHPMyAdmin, редактирайки ги един по един. Клеткита с вече остарялата информация са 1а и 2а, както съм ги написал в скрипта.

Възможно ли е да се напише така че да обработи заявката за UPDATE за всеки един ред от таблицата?



Тема Re: Как да напиша този скриптнови [re: hrisunko]  
Авторedmon (Нерегистриран)
Публикувано06.05.01 18:24



i az ne moga mnogo da razbera ama
ne mozhesh li pri sledvashto izvikvane da izpraznish prosto promenlivite
i te da poluchat novi stoinosti ?
...
ne moga da se setia da ima problem s tova i az sum si pravil takova
da mi chete ot bazata da mi popylni formuliar i sled tova da mi zapishe na staroto misato novite neshta redaktirani i sum niamal problem...



Тема Re: Как да напиша този скриптнови [re: hrisunko]  
Авторedmon (Нерегистриран)
Публикувано06.05.01 18:28



kakvo oznachva che tekstovite poleta sa s edno i syshto ime
$new1 ne e ednakvo s $new2



Тема Re: Как да напиша този скриптнови [re: edmon]  
Авторedmon (Нерегистриран)
Публикувано06.05.01 18:29



aaa problem mi beshe che ne moga da popylvam v tekstovoto pole i za tova si gi napravih area



Тема Re: Как да напиша този скриптнови [re: edmon]  
Автор hrisunko (Наблюдател)
Публикувано06.05.01 18:42



Да си предтавим таблица с n на брой клетки. Извиквайки цялата информация от две клетки и ги представя като <input type="text" name="new1" value="стойността на тази клетка"> то ще ми излезат n на брой реда като всеки от тях ще изглежда например така:
<input type="text" name="new1" value="2000">

<input type="text" name="new1" value="2001">

<input type="text" name="new1" value="2002"> и т.н.

Но към всеки от тях ще има например <input type="hidden" name="primary" value="уникален номер в таблицата">

Аз искам да променя тези 2000, 2001, 2002 с други цифри и всички наведнъж да се обработят от UPDATE... SET... WHERE


Всички тези редове имат <input type="text"> с едно и също име - $new1. Съответно и променливата, която се създава ще бъде с това име за всичко -> припокриват се и остава само последната стойност.

Така е и за $new2 - втората клетка, която искам да променя.

Мислех си че може да стане нещо с foreach или do...while.... но не го доизмислих.





Тема Re: Как да напиша този скриптнови [re: hrisunko]  
Авторtraktorist (Нерегистриран)
Публикувано06.05.01 19:29



На веднъж не можеш да направиш UPDATE на едно поле и множество записи освен ако не е една и съща стойността с която ще го правиш, с цикъл не никакъв проблем. Кръщаваш именат на полетата във формата примерно new1...new. и след това с простичък цикъл.
си взимаш данните и ги буташ в SQL заяваката.
<цикъл>
a = $new".$i.";
$qmysql="UPDATE <table> SET <име на поле> = a WHERE <ключ>";
mysql_query($qmysql);
<край на цикъла>



Тема Re: Как да напиша този скриптнови [re: hrisunko]  
Автор ViruS (Master)
Публикувано06.05.01 19:42



Ами защо по дяволите всичките ти полета трябва да се казват new1? Не е ли по-добре да ги кръстиш new1, new2, ..., newN. Ако не се сещаш как да ги обходиш с цикъл, пробвай с $GLOBALS["new$i"] ;-)

btw, така и така ползваш числови индекси за fetch-натия масив... що не ползваш mysql_fetch_row() ?

ViruS


Тема Re: Как да напиша този скриптнови [re: hrisunko]  
Автор bofh ()
Публикувано06.05.01 21:10




<?
$NumCols=6;

while($row=mysql_fetch_row($result))
{
$rowcnt++;
for($col=1;$col<=$NumCols;$col++){
echo"<td>";
if($col<5){
echo $row[$col] . "</td>";
}else{
echo "<input type=\"text\" name=\"dbFld[[$rowcnt][$col]]\" value=\"$row[$col]\"></td>";
}
}
}


Това за извеждането на екрана. Писал съм го на notepad, и набързо, но
$numcols както се сещаш ти съдържа броя на колоните в реда. Може
да се реализира и с foreach,но така или иначе идеята ми беше да пазя
индекс-а та затова е с for. Тоя if дето съм го сложил е имайки едно наум,
че все пак текстовите полета принадлежат на колони 5 и 6. По този начин
ще получиш input type с name="dbFld[[1][5]]"" където x e номер на реда,у
на колоната. И съответно лесно можеш да разбереш после кое за къде е.
(така отпада нуждата от пазене на твоя key освен ако нямаш трити записи)

Тоя номер с Update дето си го замислил, нещо не ми се вижда много реализуем,
ма предполагам че salle ще ти измисли нещо, по принцип и Replace (това е
като хибрид между UPDATE и INSERT) e бавничъk.


Малка корекциика, та после данните ще са ти достъпни чрез
($dbFld["[$rowcnt][$col]"]);

bofh


Страници по тази тема: 1 | 2 | >> (покажи всички)
*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.