С една UPDATE заявка да се обновят много записи?

streleca_stz

Registered
Здравейте! Искам да ви попитам възможно ли е с една UPDATE заявка да се обновят много записи? Или ако не става, може ли да се направи имам определена част от записите която искам да променя и знам, че във някои от тях се повтаря и да речем искам да го сменя с друго..

Пример:
Резултат 1: 'Някакъв тест + :)';
Резултат 2: 'Втори текст...';
Резултат 3: 'Трети .. дъра бъра + :)';

И искам да ви попитам как с една заявка да променя :) и примерно да се смени на :D

Дано да има хора, които да ми помогнат, защото ми трябва.. (да не кажа и спешно, че ми трябва... ;X)
 
PHP:
UPDATE `tablica ` SET value='anothervalue' , value2='sudurjanie navalue2' , value3 ='sudurjanie na value3' WHERE zapisi='koito iskam da promenq'
Може би имаш предвид това?
 
http://www.w3schools.com/php/php_mysql_update.asp :lol:
Може да използваш google :)
EDIT:
[sql]UPDATE tablica
SET
pole1 = 'stoinost1',
pole2 = 'stoinost2',
pole3 = 'stoinost3'
WHERE
pole4 = 'stoinost4'[/sql]
 
palex каза:
или примерно:

UPDATE tablica SET valuefield=replace(valuefield,':)',':D')
WHERE valuefield like '%:)%';

Мисля, че е това, обаче не мога да го подкарам.. Аз искам да сменя в коментарите в сайта ми да не е < ами да е < и т.н. И не мисля, че би сработило ако използвам LIKE... :X

-----------------

Аз знам как се прави по принцип ъпдейт на запис.. Но не знам как с една mysql update завква да сменя < с < на всички записи, които съдържат <
 
streleca_stz каза:
palex каза:
или примерно:

UPDATE tablica SET valuefield=replace(valuefield,':)',':D')
WHERE valuefield like '%:)%';

Мисля, че е това, обаче не мога да го подкарам.. Аз искам да сменя в коментарите в сайта ми да не е < ами да е < и т.н. И не мисля, че би сработило ако използвам LIKE... :X
< ако не се лъжа е html special char, така че ако минаваш коментара през тази функция като го изкарваш не трябва ли да го минеш през htmlspecialchars_decode(); ?
 
хайде пак да обясниш какво искаш да направиш ??? Абсолютно нищо не ми стана ясно
 
slideR каза:
хайде пак да обясниш какво искаш да направиш ??? Абсолютно нищо не ми стана ясно

Така.. Имам таблица с коментари. В нея има записи в които има емотикони. Но тъй като целия коментар минава през htmlspecialchars тези символи (<,",>) се преобразуват в (<,&quote;,>) .. И тъй като не искам да използвам htmlspecialchars_decode искам да ви попитам дали е възможно само с 1 ъпдейт заявка да се променят всички коментари в които има емотикони (тоест img тага) да се сменят от <,&quote;,> на <,",>

Питам ви за това, защото чак вчера се сетих как може да стане така, че да си останат на емотиконките оригиналния img таг, а всичко друго да се преработва.. Но тъй като имам доста написани коментари с емотиконки и махна htmlspecialchars_decode(); ще се прецакат старите коментари, а новите които са написани след промяната на кода ми ще се виждам окей.. Надявам се сега вече да ме разберете! :)
 
Не би трябвало да не може да го подкараш. Дай грешката и структурата на таблицата ти.

Пробвай така (естествено върху копие на таблицата или базата):
[sql]
UPDATE tablica SET valuefield=
replace(
replace(
replace(valuefield,'<','<'),
'>','>'),
'"','"')

WHERE valuefield like '%&%;%';
[/sql]
 
А защо просто не си направиш проверка на коментара дали е преди или след смяната на системата и в зависимост от това да има различно декодиране ?
 
palex каза:
Не би трябвало да не може да го подкараш. Дай грешката и структурата на таблицата ти.

Пробвай така (естествено върху копие на таблицата или базата):
[sql]
UPDATE tablica SET valuefield=
replace(
replace(
replace(valuefield,'<','<'),
'>','>'),
'"','"')

WHERE valuefield like '%&%;%';
[/sql]

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in D:\xampp\htdocs\tokiohotel-bg\update.php on line 12
mysql_query("UPDATE `posts_comments` SET $comment=
replace(
replace(
replace($comment,'<','<'),
'>','>'),
'"','"')

WHERE $comment LIKE '%&%;%'") or die (mysql_error());
Прави проблем кавичката :S

=-------------------------------------=

ivo_pi4a каза:
А защо просто не си направиш проверка на коментара дали е преди или след смяната на системата и в зависимост от това да има различно декодиране ?

А как би трябвало да изглежда проверката? :?
 
Иво може би има предвид преди да запишеш данните в базата да направиш
$value = mysql_real_escape_string(htmlspecialchars_decode($_POST[]));
а иначе аз си мислех, че ще пуснеш тая заявка еднократно и съм ти дал само заявката. Като я правиш на стринг трябва да ескейпнеш кавичките ето така:
PHP:
mysql_query("UPDATE tablica SET valuefield=replace(replace(replace(valuefield,'<','<'), '>','>'),'"','\"') WHERE valuefield like '%&%;%'");
 
palex каза:
Иво може би има предвид преди да запишеш данните в базата да направиш
$value = mysql_real_escape_string(htmlspecialchars_decode($_POST[]));
а иначе аз си мислех, че ще пуснеш тая заявка еднократно и съм ти дал само заявката. Като я правиш на стринг трябва да ескейпнеш кавичките ето така:
PHP:
mysql_query("UPDATE tablica SET valuefield=replace(replace(replace(valuefield,'<','<'), '>','>'),'"','"') WHERE valuefield like '%&%;%'");

Да така стана! Мерси мнооого! +1 :?:
 

Back
Горе