Avatar billede gr8m8 Novice
18. oktober 2012 - 11:29 Der er 6 kommentarer og
1 løsning

Opdater pris i kolonne ud fra variabel vægt

Hej Eksperter.

Jeg har lavet følgende kode som skal opdatere priserne på mine produkter ud fra prisen i tabellen t_priser og kolonnen a_totalprice -2 -vægt.

-----KODE---------------
<?php
// MySQL Forbindelsen
mysql_connect("localhost", "user", "pass") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());

$weightprice = 19;

// Scriptet
$result = mysql_query("UPDATE ps_product INNER JOIN t_priser ON reference = a_code SET price = a_totalprice -2 -$weightprice")
or die(mysql_error()); 

echo "<h1>DONE!</h1>";
?>
-----KODE---------------

Dette gør den også rigtig fint, problemet er bare at vægten er variabel og ikke altid 19 som jeg har sat $weightprice til at være.

Det store spørgsmål er så hvordan jeg får trukket vægten ud på hvert produkt og trukket den korrekte vægtpris fra ud fra en vægtpris der er defineret f.eks. sådan her:

$weightprice = 19;
if ($weight <= 0.99 && $weight >= 0.7){
    $weightprice = 19;
} else if ($weight <= 1.49 && $weight >= 1){
    $weightprice = 26;
} else if ($weight <= 1.99 && $weight >= 1.5){
    $weightprice = 35;
}
         
return $weightprice;

Håber det er til at forstår og at der er en af jer der har lyst til at hjælpe en wannabee programmør i problemer ;-)

På forhånd tusind gange tak.
18. oktober 2012 - 12:57 #1
Det er ikke let at gennemskue hvordan din kode haenger sammen ud fra de stykker du viser.  Hvordan kender du $weight?  Er det resultatet af en anden database forespoergsel?

Loesningen er muligvis noget i denne retning:

<?php
// MySQL Forbindelsen
mysql_connect("localhost", "user", "pass") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());

$weight = [koden der giver dig $weight]

if ($weight <= 0.99 && $weight >= 0.7)  $weightprice = 19;
else if ($weight <= 1.49 && $weight >= 1)  $weightprice = 26;
else if ($weight <= 1.99 && $weight >= 1.5)  $weightprice = 35;

// Scriptet
$result = mysql_query("UPDATE ps_product INNER JOIN t_priser ON reference = a_code SET price = a_totalprice -2 -$weightprice")
or die(mysql_error());

echo "<h1>DONE!</h1>";
?>
Avatar billede gr8m8 Novice
18. oktober 2012 - 13:33 #2
Tak for dit bidrag Christina :-)

$weight står egentlig angivet i tabellen ps_product i kolonnen weight. Jeg ved bare ikke hvordan jeg får den med hele vejen derned til hvor den skal trække vægten fra.

Så hvis jeg skal prøve at pseudo kode lidt:
$weight = select weight from ps_product;

Ville sådan noget lignender omdannet til brugbar kode virke? :-)

På forhånd tak.
Avatar billede gr8m8 Novice
18. oktober 2012 - 13:34 #3
Ack.. Christina seføli, ikke Christina... sorry !
Avatar billede gr8m8 Novice
18. oktober 2012 - 13:34 #4
CHRISTIAN !! wtf...
18. oktober 2012 - 16:42 #5
Saa kommer du nok til at goere det raekke for raekke:  Selecte alle raekker i ps_product.  For hver raekke beregner du weightprice, og saa updater du den raekke.

I det foelgende eksempel bruger jeg den antagelse, at tabellen ps_produkt har et felt 'id' som er primary key.

mysql_connect("localhost", "user", "pass") or die(mysql_error());
mysql_select_db("database") or die(mysql_error());

$result = mysql_query("SELECT id, weight FROM ps_product");
while($row = mysql_fetch_array($result))
{
  $id = $row['id'];
  $weight = $row['weight'];
  if ($weight <= 0.99 && $weight >= 0.7) $weightprice = 19;
  else if ($weight <= 1.49 && $weight >= 1) $weightprice = 26;
  else if ($weight <= 1.99 && $weight >= 1.5) $weightprice = 35;
  mysql_query("UPDATE ps_product JOIN t_priser ON reference = a_code SET price = a_totalprice -2 -$weightprice WHERE ps_product.id = $id");
}
Avatar billede gr8m8 Novice
19. oktober 2012 - 10:38 #6
@Christian_Belgien

Det var lige hvad jeg skulle bruge.

TUUUSIND tak, det er bare helt fantastisk :-)

Smid gerne et svar, så skal jeg med største glæde tildele dig de 200 point :-)
20. oktober 2012 - 00:16 #7
Svar fra mig.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB