Foros del Web » Programando para Internet » PHP »

duda con un select...

Estas en el tema de duda con un select... en el foro de PHP en Foros del Web. Hola a todos, Os comento un caso, a ver si me podeis sacar de las horas que llevo invertidas... Tengo dos tablas llamadas: products ( ...
  #1 (permalink)  
Antiguo 08/03/2007, 05:27
 
Fecha de Ingreso: noviembre-2006
Mensajes: 68
Antigüedad: 17 años, 5 meses
Puntos: 0
duda con un select...

Hola a todos,

Os comento un caso, a ver si me podeis sacar de las horas que llevo invertidas...

Tengo dos tablas llamadas:

products (products_id, products_model, products_price, products_image)
products_description (products_id, products_name)

El caso es que quiero recuperar datos de ambas tablas. He leido articulos sobre el tema, y deduzco que tiene que ser algo así:

Código:
$res=mysql_query("select products_image, products_price, products_model, products_name from products, products_description where products_id = products_description.products_id order by products_id desc limit 0,6");
La base de datos es de una tienda en oscommer, y estoy preparando un 'modulo de publicidad' para insertar en otra web y que coja los productos directamente de la tienda. El caso es, que oscommerce mete el nombre del producto en otro tabla.

Y estoy recuperando el precio, la imagen y no puedo recuperar el dichoso nombre.

Alguien ve el error en el select ?

Muchas gracias
  #2 (permalink)  
Antiguo 08/03/2007, 05:34
 
Fecha de Ingreso: marzo-2007
Mensajes: 13
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: duda con un select...

xq no haces un NATURAL JOIN?

$res=mysql_query("select products_image, products_price, products_model, products_name from products natural join products_description order by products_id desc limit 0,6");
  #3 (permalink)  
Antiguo 08/03/2007, 05:37
 
Fecha de Ingreso: marzo-2007
Mensajes: 13
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: duda con un select...

No debería darte ningun error, espero que te funcione bie, y ya de paso..

me puedes ayudar con mi duda en el foro?
Select dependientes con 1 tabla

Gracias
  #4 (permalink)  
Antiguo 08/03/2007, 06:05
 
Fecha de Ingreso: noviembre-2006
Mensajes: 68
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: duda con un select...

Me sigue dando el mismo error:

Código:
<?
	
	$res=mysql_query("select products_image, products_price, products_model, products_name from products natural join products_description order by products_id desc limit 0,6");  
	while($fila=mysql_fetch_array($res))

		{
			echo "<tr><td class=\"f\">";
			?>
			<img width="100" height="80" src="URL/<?php echo $fila['products_image']; ?>" />
			
			<?	
			echo "<br>".$fila["products_name"]." €<br>";
			echo "".$fila["products_price"]." €<br>";
			echo "</td></tr>";
      		}
	?>
Me da un error en la línea 24, que es la de abajo del select.

La verdad que desconocia el comando natural join... Ya que no salgo de mis where, and, order by... y poquísimo más

Sobre select dependientes... estoy igual de pez.

:(
  #5 (permalink)  
Antiguo 08/03/2007, 09:07
 
Fecha de Ingreso: noviembre-2006
Mensajes: 68
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: duda con un select...

de todas formas, todos los ejemplos que estoy mirando en google no usan este comando 'Natural join'.

Usan la asociación con el where... Pero no entiendo pq no me chuta...
  #6 (permalink)  
Antiguo 08/03/2007, 09:16
Avatar de HMSJUAN  
Fecha de Ingreso: febrero-2007
Mensajes: 54
Antigüedad: 17 años, 1 mes
Puntos: 1
Re: duda con un select...

Porque no pones el codigo completo y luego el error para ayudarte
  #7 (permalink)  
Antiguo 08/03/2007, 09:33
 
Fecha de Ingreso: marzo-2007
Mensajes: 13
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: duda con un select...

el error por lo tanto te lo da en el while.
while($fila=mysql_fetch_array($res))

mira si el error es de mysql_fetch_array, y prueba con otro no se me ocurre otra cosa, como sustituyendolo por mysql_fetch_row()

El Natural Join es lo mismo que lo que has echo tu al principio, pero mucho mas claro. Este relaciona dos tablas en el caso de que ambas tengan el mismo argumento, en tu caso (products_id). Por lo que no es necesario hacer el "where products_id = products_description.products_id" . Si tuvieras en las tablas mas de un argumento igual, entonces el resultado si seria diferente.
  #8 (permalink)  
Antiguo 08/03/2007, 09:49
 
Fecha de Ingreso: noviembre-2006
Mensajes: 68
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: duda con un select...

El código completo es:

Código:
<style type="text/css">
.f { background: url(images/fondo-fisiomedia.jpg) no-repeat left top; 
		 width: 120px;
		 height: 130px;
		 padding: 3px 4px 0px 4px;
		 text-align:center;
		 font-size:10px; color:#000000 }


</style>

<td width="120" valign="top">
<table width="120" cellspacing="0" cellpadding="0">
		<tr>
			<td style="text-align:center;" valign="top"><a target="_blank" href="URL">
			<img src="images/patrocinadores/logo-fisiomedia1.jpg"></a></tr>
<?
	$id=mysql_connect ("localhost", "dbuser", "dbpasswrods") or die ('I cannot connect to the database because: ' . mysql_error());
	mysql_select_db ("dbname");
?>
<?
	
	$res=mysql_query("select products_image, products_price, products_model, products_name from products natural join products_description order by products_id desc limit 0,6");
	while($fila=mysql_fetch_array($res))

		{
			echo "<tr><td class=\"f\">";
			?>
			<img width="100" height="80" src="URL/images/<?php echo $fila['products_image']; ?>" />
			
			<?	
			echo "<br>".$fila["products_name"]." <br>";
			echo "".$fila["products_price"]." €<br>";
			echo "</td></tr>";
      		}
	?>
</table>		</td>
	</tr>
</table>
				
</td>
		</tr>
Y el error es:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/pressing/public_html/columna-fisiomedia.php on line 24


He problema lo que dices de row pero tampoco funciona. El array no es, ya que si el select lo pongo apuntando solo a una tabla chuta:

Código:
$res=mysql_query("select * from products order by products_id desc limit 0,6");
	while($fila=mysql_fetch_array($res))
Me saca el precio y la imagen correctamente. Ahora necesito el nombre :(
  #9 (permalink)  
Antiguo 09/03/2007, 03:58
 
Fecha de Ingreso: noviembre-2006
Mensajes: 68
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: duda con un select...

Me han ayudado con 2 selects, que los quiero enseñar. Ninguno funciona, pero entiendo que son más que correctos:


PRIMERO:

select LEFT(products_description.product_name,20) as product_name, FORMAT(products.products_price,2) as product_price, products.products_image as products_image from products, products_description WHERE products.products_model=products_description.produ cts_name order by products_id desc limit 0,6

SEGUNDO:

SELECT products.products_price, products.products_image, products_description.products_name FROM products INNER JOIN products_description on products.products_id = products_description.produtcs_id order by products_id desc limit 0,6


Sigo en mi busqueda por el select que funcione...
  #10 (permalink)  
Antiguo 26/03/2015, 13:42
 
Fecha de Ingreso: febrero-2015
Mensajes: 6
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: duda con un select...

Cita:
Iniciado por 1pere3 Ver Mensaje
Hola a todos,

Os comento un caso, a ver si me podeis sacar de las horas que llevo invertidas...

Tengo dos tablas llamadas:

products (products_id, products_model, products_price, products_image)
products_description (products_id, products_name)

El caso es que quiero recuperar datos de ambas tablas. He leido articulos sobre el tema, y deduzco que tiene que ser algo así:

Código:
$res=mysql_query("select products_image, products_price, products_model, products_name from products, products_description where products_id = products_description.products_id order by products_id desc limit 0,6");
La base de datos es de una tienda en oscommer, y estoy preparando un 'modulo de publicidad' para insertar en otra web y que coja los productos directamente de la tienda. El caso es, que oscommerce mete el nombre del producto en otro tabla.

Y estoy recuperando el precio, la imagen y no puedo recuperar el dichoso nombre.

Alguien ve el error en el select ?

Muchas gracias


el asunto es muy sencillo el producto no esta en la primera tabla sino en la segunda, deves de arreglarlo y ponerlo en la segunda tabla tu mismo lo dices al princio, no se si borren esta respuesta por que hace tanto tiempo que esta aqui pero yo resuelvo el mismo problema con esto que tu planteas, gracias aunque no creo que dure este post. por lo antiguo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:47.