Jump to content

whats wrong with this join statement?


jbrill

Recommended Posts

hey

just looking for some quick help with this join statement

 

thnx

 

$sql = mysql_query("SELECT make.id, make.make FROM dynamic_vehicles, dynamic_makes WHERE vehicles.id = make.id");
while($make = mysql_fetch_array($sql))

{

	echo '<li><a href="#" title="'.$make['make'].'">'.$make['make'].'</a></li> ';
}

Link to comment
https://forums.phpfreaks.com/topic/96777-whats-wrong-with-this-join-statement/
Share on other sites

actually, one more thing...

 

here is the code right now:

$sql = mysql_query("SELECT make.id, make.make,vehicles.active FROM dynamic_vehicles AS vehicles, dynamic_makes AS make WHERE vehicles.id = make.id ORDER BY make.make ASC");
while($make = mysql_fetch_array($sql))

{
	if($make['active']==1)
		{
			echo '<li><a href="#" title="'.$make['make'].'">'.$make['make'].'</a></li> ';
		}
}

 

 

I have a field in the "dynamic_vehicles" table called "active" if active is "1" then i want it to show the models that are active and not the other ones.

I tried adding "AND vehicles.active='1' " but it did not work

Could you post your new WHERE clause? I presume it looks like:

 

WHERE vehicles.id = make.id AND vehicles.active = '1'

 

Also, what error do you get? Also, I usually like to run the queries directly against the DB to make sure you are able to get results and aren't confusing queries that return no results with a PHP problem.

 

Cheers.

here is the code i jsut ran in phpmyadmin

 

SELECT make.id, make.make,vehicles.active FROM dynamic_vehicles AS vehicles, dynamic_makes AS make WHERE vehicles.id = make.id AND vehicles.active='1' ORDER BY make.make ASC

 

this is showing all the models in the "models" table i need to only show the model IF a vehicle in the "vehicles" table is active=1

huh. then there isnt a field names active in the dynamic_makes table and you did want to check vehicles.active for sure.

 

Caberman should have told you to use a join the right way. try this

 

SELECT make.id, make.make,vehicles.active

FROM dynamic_vehicles AS vehicles, dynamic_makes AS make

INNER JOIN make ON vehicles.id=make.id

WHERE vehicles.active='1'

ORDER BY make.make ASC

 

not sure... does that work better?

Well basically I need the to check against dynamic_vehicles  and only show the "model" from the dynamic_models table if the vehicle is set to active=1

 

here is the code so far:

$sql = mysql_query("SELECT make.id, make.make,vehicles.active FROM dynamic_vehicles AS vehicles, dynamic_makes AS make WHERE vehicles.id = make.id AND vehicles.active='1' ORDER BY make.make ASC");
while($make = mysql_fetch_array($sql))	
	{	
		echo '<li><a href="#" title="'.$make['make'].'">'.$make['make'].'</a></li> ';		
	}

this is the error im getting: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/dynamica/public_html/test/includes/header.php on line 27

 

here is the tables structure:

 

dynamic_vehicles:

id,date_added,cat,make,model,year,vin,odometer,color,interior_color,motor,transmission,drive,doors,passengers,description,warranty,options,price,stock_num,active,sold,featured

 

dynamic_make:

id, make

 

ok, so i got some models being displayed, but they are not the proper ones that are set to active=1

 

here is my code

$sql = mysql_query("SELECT make.id, make.make,vehicles.active FROM dynamic_vehicles AS vehicles, dynamic_makes AS make WHERE  vehicles.active='1' AND vehicles.id = make.id GROUP BY vehicles.make ORDER BY make.make ASC") or die(mysql_error());
while($make = mysql_fetch_array($sql))

{
	if($make['active']==1) {
	echo '<li><a href="#" title="'.$make['make'].'">'.$make['make'].'</a></li>';
		}
}

 

 

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.