Foros del Web » Programando para Internet » PHP »

Este codigo esta correcto? (es cortito)

Estas en el tema de Este codigo esta correcto? (es cortito) en el foro de PHP en Foros del Web. Hola amigos, como alguno ya sabra, recien empiezo en php. Aunque considero que me va bien, no tengo a nadie a quien preguntarle. Este codigo ...
  #1 (permalink)  
Antiguo 12/12/2009, 08:29
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 16 años, 6 meses
Puntos: 0
Este codigo esta correcto? (es cortito)

Hola amigos, como alguno ya sabra, recien empiezo en php. Aunque considero que me va bien, no tengo a nadie a quien preguntarle.

Este codigo es correcto?
Mi duda es que como utilizo dos veces fleth_array con dos variables diferentes, me da miedo que se mesclen o se sobreescriban o algo asi:

Código PHP:
while ($fila mysql_fetch_array($ejecutarSql))
{
    echo 
'<tr>';
        
//Imprimo la categoria
        
$idCategoria $fila[idCategoria];    
        
//La cadena sql para obtener la categoria del ID correspondiente
        
$cadenaCategorias "select * from productos_categorias where idCategoria like $idCategoria";
        
$ejecutarSqlCategorias mysql_query($cadenaCategorias);
        
//fetch_array retorna los datos de las filas en un vector, sino da false.
        
$filaCategoria mysql_fetch_array($ejecutarSqlCategorias);    
        echo 
'<td>'.$filaCategoria[nombreCategoria].'</td>';
        
        echo 
'</tr>';


Como veran $fila y $filaCategoria utilizan fletch array, no se si sera correcto o abra una forma mejor.

El codigo funciona, pero queria que me quedara de la mejor manera posible.

Gracias!!
  #2 (permalink)  
Antiguo 12/12/2009, 08:38
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 6 meses
Puntos: 65
Respuesta: Este codigo esta correcto? (es cortito)

SI, esta bien, lo unico que me parece que se podria implementar mejor. No se que es exactamente lo que estas haciendo, pero hacer una consulta recursivamente dentro de un while me parece que no es lo mejor.
Ademas, en el segundo mysql_fetch_array() solo traes 1 resultado...

Si lo que queres es unir dos tablas pasando parametros de una a otra podrias usar la sentencia JOIN, o un select con los parametros del tipo tabla1.columna1 and tabla2.columna2 Y ahorrarte una query.
  #3 (permalink)  
Antiguo 12/12/2009, 12:11
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Este codigo esta correcto? (es cortito)

hola, muchas gracias por responder.

Veras, lo que quier hacer es imprimir con 'echo' un listado de articulos.
Cada articulo tiene un campo que es "categoria" a la que pertenece.
Este campo es numerico y se corresponderia con el campo de otra tabla.

La tabla seria productos_categorias, esta tabla tiene dos comlumnas idCategoria y NombreCategoria.

Entonces, mediante el numero que tengo en productos, en el campo categoria, busco la categoria mediante su id y la muestro con echo.

Esta mal asi?

Ahora que lo pienso, quiza sea mejor, antes del while, declarar un vector con todas las categorias y dentro del while usar el vector en ves de realizar una consulta.

Muchas gracias!
  #4 (permalink)  
Antiguo 12/12/2009, 12:16
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 6 meses
Puntos: 65
Respuesta: Este codigo esta correcto? (es cortito)

Código SQL:
Ver original
  1. SELECT tabla.articulo, tabla.categorias, productos_categorias.idCategoria, productos_categorias.NombreCategoria FROM tabla, productos_categorias WHERE tabla.categoria=productos_categorias.idCategoria;

Donde tabla es el nombre de tu primer tabla, q no se cual es =P
  #5 (permalink)  
Antiguo 12/12/2009, 12:40
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Respuesta: Este codigo esta correcto? (es cortito)

Es mejor usar un join en sql, para que el nombre de la categoría ya venga en la consulta.
Algo asi:

Código:
  select p.*,c.categoria from productos p
  inner join categorias c on c.id=p.idcategoria
  where ...
Se entiende?
  #6 (permalink)  
Antiguo 15/12/2009, 17:38
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Este codigo esta correcto? (es cortito)

Cita:
Iniciado por jackson666 Ver Mensaje
Código SQL:
Ver original
  1. SELECT tabla.articulo, tabla.categorias, productos_categorias.idCategoria, productos_categorias.NombreCategoria FROM tabla, productos_categorias WHERE tabla.categoria=productos_categorias.idCategoria;

Donde tabla es el nombre de tu primer tabla, q no se cual es =P
Muchas gracias, por responder!
No entiendo del todo...

Lo que no entiendo puntualmente es el where, es asi??
"donde la categoria del producto sea igual al id de la categoria de la tabla productos_categoria"

Lo que no entiendo es como obtengo el Id de la categoria del producto para comparar con el Id de las categoria de las tablas categoria.
Arriba del While, usaba este select para mostrar todos los productos, lo sigo usando??
"select * from productos order by nombreProducto";



Ah por cierto, la tabla de los productos se llama "productos".

Muchas gracias, disculpa las molestia.

Última edición por ebalmaceda; 15/12/2009 a las 17:43
  #7 (permalink)  
Antiguo 15/12/2009, 17:39
 
Fecha de Ingreso: noviembre-2007
Mensajes: 191
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Este codigo esta correcto? (es cortito)

ClaudioVega:

Muchas gracias por responder!
No logro entenderte, porque soy nuevo en esto todabia.
Me podrias explicar algo mas??
Muchas gracias!!
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 00:10.