Jump to content

[SOLVED] loops and MySQL


hyeteck

Recommended Posts

hey guys,

 

i have a piece of code from my program that is not functioning the way i want it to.  It is not going into the "if" statement.

$result = mysql_query("SELECT * from `products` WHERE pID='prodId' ") or die(mysql_error());

	if($row = mysql_fetch_array($result))
	{
		echo "$prodId";
		if($prodMap > 0 || $prodMap!= NULL)
			$prodPrice = $prodMap;
		elseif($prodPrice < 10)
			$prodPrice = $prodPrice + ($prodPrice * .50);
		elseif($prodPrice >= 10 && $prodPrice < 50)
			$prodPrice = $prodPrice + ($prodPrice * .25);
		elseif($prodPrice >= 50 && $prodPrice < 150)
			$prodPrice = $prodPrice + ($prodPrice * .15);
		elseif($prodPrice >= 150 && $prodPrice < 400)
			$prodPrice = $prodPrice + ($prodPrice * .10);
		elseif($prodPrice >= 400 && $prodPrice < 100)
			$prodPrice = $prodPrice + ($prodPrice * .06);
		else
			$prodPrice = $prodPrice + ($prodPrice * .05);

		$prodPrice = floor($prodPrice);
		$prodPrice = $prodPrice + 0.99;

		$result = mysql_query("UPDATE `products` SET `pPrice`='$prodPrice', `pInStock`='$prodQuant' WHERE `pID`='$prodId' ");
	}

basically, i want it to go into the "if" statement if the product id exists in the database already.

 

any ideas

Link to comment
https://forums.phpfreaks.com/topic/38960-solved-loops-and-mysql/
Share on other sites

$result = mysql_query("SELECT * from `products` WHERE pID='prodId' ") or die(mysql_error());

	while($row = mysql_fetch_array($result))
	{
		echo "$prodId";
		if($prodMap > 0 || $prodMap!= NULL)
			$prodPrice = $prodMap;
		elseif($prodPrice < 10)
			$prodPrice = $prodPrice + ($prodPrice * .50);
		elseif($prodPrice >= 10 && $prodPrice < 50)
			$prodPrice = $prodPrice + ($prodPrice * .25);
		elseif($prodPrice >= 50 && $prodPrice < 150)
			$prodPrice = $prodPrice + ($prodPrice * .15);
		elseif($prodPrice >= 150 && $prodPrice < 400)
			$prodPrice = $prodPrice + ($prodPrice * .10);
		elseif($prodPrice >= 400 && $prodPrice < 100)
			$prodPrice = $prodPrice + ($prodPrice * .06);
		else
			$prodPrice = $prodPrice + ($prodPrice * .05);

		$prodPrice = floor($prodPrice);
		$prodPrice = $prodPrice + 0.99;

		$result = mysql_query("UPDATE `products` SET `pPrice`='$prodPrice', `pInStock`='$prodQuant' WHERE `pID`='$prodId' ");
	}

 

use a while loop not an if...

<?php
$result = mysql_query("SELECT * from `products` WHERE pID='prodId' ") or die(mysql_error());
if(!$result){
echo "product key doesnt exist";
}else{	
	while($row = mysql_fetch_array($result))
	{
		echo "$prodId";
		if($prodMap > 0 || $prodMap!= NULL)
			$prodPrice = $prodMap;
		elseif($prodPrice < 10)
			$prodPrice = $prodPrice + ($prodPrice * .50);
		elseif($prodPrice >= 10 && $prodPrice < 50)
			$prodPrice = $prodPrice + ($prodPrice * .25);
		elseif($prodPrice >= 50 && $prodPrice < 150)
			$prodPrice = $prodPrice + ($prodPrice * .15);
		elseif($prodPrice >= 150 && $prodPrice < 400)
			$prodPrice = $prodPrice + ($prodPrice * .10);
		elseif($prodPrice >= 400 && $prodPrice < 100)
			$prodPrice = $prodPrice + ($prodPrice * .06);
		else
			$prodPrice = $prodPrice + ($prodPrice * .05);

		$prodPrice = floor($prodPrice);
		$prodPrice = $prodPrice + 0.99;

		$result = mysql_query("UPDATE `products` SET `pPrice`='$prodPrice', `pInStock`='$prodQuant' WHERE `pID`='$prodId' ");
	}
}
?>

sorry, i should have posted a bit more of my code

 

		$approved_chunks = explode("	", $approved_string);
	$prodId = $approved_chunks[0];
	$prodPrice = $approved_chunks[1];
	$prodMap = $approved_chunks[2];
	$prodQuant = $approved_chunks[3];

	$result = mysql_query("SELECT * from `products` WHERE pID='prodId' ") or die(mysql_error());

	if($row = mysql_fetch_array($result))
	{
		echo "$prodId";
		if($prodMap > 0 || $prodMap!= NULL)
			$prodPrice = $prodMap;
		elseif($prodPrice < 10)
			$prodPrice = $prodPrice + ($prodPrice * .50);
		elseif($prodPrice >= 10 && $prodPrice < 50)
			$prodPrice = $prodPrice + ($prodPrice * .25);
		elseif($prodPrice >= 50 && $prodPrice < 150)
			$prodPrice = $prodPrice + ($prodPrice * .15);
		elseif($prodPrice >= 150 && $prodPrice < 400)
			$prodPrice = $prodPrice + ($prodPrice * .10);
		elseif($prodPrice >= 400 && $prodPrice < 100)
			$prodPrice = $prodPrice + ($prodPrice * .06);
		else
			$prodPrice = $prodPrice + ($prodPrice * .05);

		$prodPrice = floor($prodPrice);
		$prodPrice = $prodPrice + 0.99;

		$result = mysql_query("UPDATE `products` SET `pPrice`='$prodPrice', `pInStock`='$prodQuant' WHERE `pID`='$prodId' ");
	}
	else
	{

 

there is my else clause in the end.  Basically if the prodID is not in there, it goes in to the else clause where it is created...otherwise it just updates the price and quantity for that product id.

hmm... just swicth the code then:

 

<?php
$result = mysql_query("SELECT * from `products` WHERE pID='prodId' ") or die(mysql_error());
if($result){
	while($row = mysql_fetch_array($result))
	{
		echo "$prodId";
		if($prodMap > 0 || $prodMap!= NULL)
			$prodPrice = $prodMap;
		elseif($prodPrice < 10)
			$prodPrice = $prodPrice + ($prodPrice * .50);
		elseif($prodPrice >= 10 && $prodPrice < 50)
			$prodPrice = $prodPrice + ($prodPrice * .25);
		elseif($prodPrice >= 50 && $prodPrice < 150)
			$prodPrice = $prodPrice + ($prodPrice * .15);
		elseif($prodPrice >= 150 && $prodPrice < 400)
			$prodPrice = $prodPrice + ($prodPrice * .10);
		elseif($prodPrice >= 400 && $prodPrice < 100)
			$prodPrice = $prodPrice + ($prodPrice * .06);
		else
			$prodPrice = $prodPrice + ($prodPrice * .05);

		$prodPrice = floor($prodPrice);
		$prodPrice = $prodPrice + 0.99;

		$result = mysql_query("UPDATE `products` SET `pPrice`='$prodPrice', `pInStock`='$prodQuant' WHERE `pID`='$prodId' ");
	}
}else {
create blabla...
}
?>

 

 

that doesn't work either.  That just makes it go in the "if" every single time no matter if the product id is in there or not and never goes into the while loop.

		$prodId = $approved_chunks[0];
	$prodPrice = $approved_chunks[1];
	$prodMap = $approved_chunks[2];
	$prodQuant = $approved_chunks[3];

	$result = mysql_query("SELECT * from `products` WHERE pID='prodId' ") or die(mysql_error());

	if($result)
	{
		echo "$prodId<br>";
		while($row = mysql_fetch_array($result))
		{
		echo "Boom!, I'm Innnnnnnnn";
		if($prodMap > 0 || $prodMap!= NULL)
			$prodPrice = $prodMap;
		elseif($prodPrice < 10)
			$prodPrice = $prodPrice + ($prodPrice * .50);
		elseif($prodPrice >= 10 && $prodPrice < 50)
			$prodPrice = $prodPrice + ($prodPrice * .25);
		elseif($prodPrice >= 50 && $prodPrice < 150)
			$prodPrice = $prodPrice + ($prodPrice * .15);
		elseif($prodPrice >= 150 && $prodPrice < 400)
			$prodPrice = $prodPrice + ($prodPrice * .10);
		elseif($prodPrice >= 400 && $prodPrice < 1000)
			$prodPrice = $prodPrice + ($prodPrice * .06);
		else
			$prodPrice = $prodPrice + ($prodPrice * .05);

		$prodPrice = floor($prodPrice);
		$prodPrice = $prodPrice + 0.99;

		$result = mysql_query("UPDATE `products` SET `pPrice`='$prodPrice', `pInStock`='$prodQuant' WHERE `pID`='$prodId' ");
		}
	}
	else
	{

hmm...still confused..ok so i broke down the code into pieces.

		$result = mysql_query("SELECT * from `products` WHERE pID='prodId' ") or die(mysql_error());
	$row = mysql_fetch_array($result);
	echo "testing<br>".$row['pID'];

 

that only prints the word "testing" without the product id next to it.  why?

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.