Foros del Web » Programando para Internet » PHP »

Cómo hago un vector de vectores en smarty???

Estas en el tema de Cómo hago un vector de vectores en smarty??? en el foro de PHP en Foros del Web. Hola, estoy con el proyecto de la carrera, un portal web de cocina, y quiero leer de una BD los ingredientes y mostrarlos, eso ok. ...
  #1 (permalink)  
Antiguo 17/11/2008, 06:14
Avatar de scout_vlc  
Fecha de Ingreso: julio-2007
Ubicación: Valencia
Mensajes: 141
Antigüedad: 17 años, 4 meses
Puntos: 0
Cómo hago un vector de vectores en smarty???

Hola,
estoy con el proyecto de la carrera, un portal web de cocina, y quiero leer de una BD los ingredientes y mostrarlos, eso ok.
Pero para cada ingrediente hay una tabla con sus usos, para un ingrediente puede haber más de una fila con los usos, y quiero mostrarlos todos.
Yo tengo esto:

Código PHP:
// obtenemos los datos de los ingredientes
$consulta "select * from ingredientes";
$ingredientes=mysql_query($consulta$link);

$totingred=0;
    
if (
$res_ingredientesmysql_fetch_array($ingredientes)){

       do {
     
$totingred++;
     
$nom_ingred $res_ingredientes['nombre'];
     
$consulta_usos "select * from ingred_usos where nombre = '$nom_ingred'";
     
$usos=mysql_query($consulta_usos$link);
     
//guardo todos los usos que hay para ese ingrediente
     
if ($res_usosmysql_fetch_array($usos)){
        do {
                        
$smarty -> append ('usos',array(
                  
'ingred_uso'=>  $res_usos['usos']
               ));
          } while (
$res_usosmysql_fetch_array($usos));
             
     }
//if ($res_usos= mysql_fetch_array($usos))
               
    
$smarty -> append ('ingredientes',array(
         
'ingred_nombre'=>  $res_ingredientes['nombre'],
          
'ingred_descrip'=> $res_ingredientes['descrip'],
           ));
        
      } while (
$res_ingredientesmysql_fetch_array($ingredientes));
}
// if ($res_ingredientes= mysql_fetch_array($ingredientes)) 
Y la plantilla es:
Código HTML:
<b>{$tot}</b>
<table class="tabla" style="width: 100%">
	<tr>
	{section name=i loop=$ingredientes}
		<td class="titulocelda" colspan="2"> {$ingredientes[i].ingred_nombre}</td>
	<tr>	
		<td class="derecha" style="width: 130px">Descripci&oacute;n:</td>
		<td>{$ingredientes[i].ingred_descrip}</td>
	</tr>
	
	<tr>
		<td class="derecha" style="width: 130px">Usos:</td>
		{section name=j loop=$usos}
			<td>{$usos[j].ingred_uso}</td>
		{/section}
	</tr>
	<tr>
		<td class="derecha" style="width: 130px">Nombres alternativos:</td>
		{section name=k loop=$alternativas}
			<td>{$alternativas[k].ingred_alter}</td>
		{/section}
	<tr>
		<td class="celdavacia" colspan="3"> &nbsp;</td>
	</tr>

	{/section}
	
	</table> 
Pero así me salen todos los usos para todos los ingredientes,
sale esto:
http://al073568.al.nisu.org/ingredientes.php
Para "tomate" tendría que salir como usos "salsas" y para "arroz" usos "hacer harina"
¿A alguién se le ocurre como hacer esto? igual de orta manera....o algo...
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 14:11.