Nahodne dosadenie hodnoty a nasobenie v stlpci MySQL

Programovacie jazyky, rady, poradňa...
nordscan
Star
Star
Príspevky: 510
Registrovaný: 27 okt 2005, 1:15
Bydlisko: orawa
Kontaktovať používateľa:

Nahodne dosadenie hodnoty a nasobenie v stlpci MySQL

Príspevok od používateľa nordscan »

Hello,
mal by som otazku ci by mi nevedel niekto pomoct,

v tabulke products, by som potreboval do stlpca "MO" dosadit nahodnu hodotu medzi 1,22 az 1,35 do vsetkych riadkov viac menej jednorazovo.

A potom cez nejake tlacitko :) prepocitvat
hodnotu v stlpci price x hodnotu v stlpci MO = price_mo, kedykolvek.

ide o to ze potrebujem z velkoobchodnych cien robit maloobchodne tak aby nebolo velmi napadne z akou marzov pracujem :)


vdaka
krasko
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 305
Registrovaný: 10 mar 2008, 5:02

Príspevok od používateľa krasko »

jednym dopytom to nespravis...pre kazdy riadok musis mat samostatny
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Skús niečo ako:

Kód: Vybrať všetko

UPDATE `products` SET `MO`=(1.22 + RAND()*0.13), `price_mo`=`MO`*`price` WHERE 1
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

generovanie MO

Kód: Vybrať všetko

<?php
  $result = mysql_query("SELECT * FROM products");
  while ($line = mysql_fetch_array($result)) {
    $id = $line["id"];
    $mo = rand(122,135) / 100;
    mysql_query("UPDATE products SET MO='$mo' WHERE id='$id'");
  }
?>
prepocet cien je dobre si spravit pri zmene ceny vzdy ale tak dalo by sa nieco podobne

Kód: Vybrať všetko

<?php
  $result = mysql_query("SELECT * FROM products");
  while ($line = mysql_fetch_array($result)) {
    $id = $line["id"];
    $price_mo = $line["price"] * $line["MO"];
    mysql_query("UPDATE products SET price_mo='$price_mo' WHERE id='$id'");
  }
?>
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

nevidim ze by niekde spominal PHP :wink:
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

gwixt napísal:nevidim ze by niekde spominal PHP :wink:
moje riesenie je slusne povedane nakokot popri chronovom (sql moc neznam, po skusenostiach s mysql 3 ci 4 ktore som mal na servri - nemalo v sebe asi nic okrem select, insert, update, delete som jeho pouzivanie obmedzil na tieto funkcie ked neviem nic o servri) aj ked funkcne, ale ked niekde vidim dotaz na mysql da sa predpokladat ze user pouziva nejaky lamp server, ze jo ...
nordscan
Star
Star
Príspevky: 510
Registrovaný: 27 okt 2005, 1:15
Bydlisko: orawa
Kontaktovať používateľa:

Príspevok od používateľa nordscan »

chrono napísal:Skús niečo ako:

Kód: Vybrať všetko

UPDATE `products` SET `MO`=(1.22 + RAND()*0.13), `price_mo`=`MO`*`price` WHERE 1
vdaka funguje dobre, len otazka ako docielit aby to pracovalo len na 2 destinne miesta nie 4?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

skús takto:

Kód: Vybrať všetko

UPDATE `products` SET `MO`=(1.22 + RAND()*0.13), `price_mo`=ROUND(`MO`*`price`,2) WHERE 1
nordscan
Star
Star
Príspevky: 510
Registrovaný: 27 okt 2005, 1:15
Bydlisko: orawa
Kontaktovať používateľa:

Príspevok od používateľa nordscan »

audiotrack napísal:skús takto:

Kód: Vybrať všetko

UPDATE `products` SET `MO`=(1.22 + RAND()*0.13), `price_mo`=ROUND(`MO`*`price`,2) WHERE 1
Vdka funguje len tam trebabolo este medzeru

Kód: Vybrať všetko

UPDATE `products` SET `MO`=(1.22 + RAND()*0.13), `price_mo`=ROUND(`MO`*`price`, 2) WHERE 1
//autoeditácia príspevku ( 22 May 2008, 18:35 )

Kód: Vybrať všetko

UPDATE `products` SET `MO`=(1.22 + RAND()*0.13) WHERE 1
potreboval by som toto obmedzit na to aby to vykonavalo len v riadkoch kde v dalsom stlpci "price" je hodnota mensia ako 100
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

UPDATE `products` SET `MO`=(1.22 + RAND()*0.13) WHERE `price`< 100
Napísať odpoveď