ColdFire.pl
15.07.2006, 09:56:39
Witajcie.
Mam sobię pewną tabelę, w niej pola:
id,var,value i przykładowe dane:
id,var,value
1,foo,bar,
2,lorem,ipsium
3,asd,dsa
4,a,b
Pojawił się jednak taki problem, że chciałbym jednym zapytaniem zmienić wszystkie wartości value nie zmieniając var. Tzn po wykonaniu zapytania chciałbym mieć:
1,foo,nowy_bar
2,lorem,nowy_ipsium
3,asd,nowy_dsa
4,a,nowy_b
....Przy 30 (i więcej) wpisach robienie do każdego update będzie mocno nieefektywne- czy jest na to jakiś inny sposób?
mike
15.07.2006, 09:59:50
UPDATE tabela SET value = CONCAT( 'nowy_', value );
:?:
ColdFire.pl
15.07.2006, 10:38:58
hmm.... fakt, napisałem to w troszkę mylący sposób- nie chodzi o dodanie prefiksu nowy_ ,a o wstawienie nowych wartości-
nowe wartości przychodzą z $_POST['nazwa_danego_var`u'];
Nostress
16.07.2006, 07:53:10
Zmien $_POST['nazwa_danego_var'] na $_POST['vars']['nazwa_danego_var'].
Pozniej pętla:
<?php
foreach( $_POST['vars'] as $key => $value )
{
mysql_query( 'UPDATE tabela SET value=''.$value.'' WHERE var=''.$key.''' ); }
?>
ColdFire.pl
16.07.2006, 18:24:46
czyli jednak nie da się tego zamienić w jednym zapytaniu, tak jak myślałem- no trudno- dzięki panowie