Foros del Web » Programando para Internet » PHP »

Array con Html

Estas en el tema de Array con Html en el foro de PHP en Foros del Web. Por favor necesito que me ayuden con el siguiente codigo, lo que necesito es mostrar los datos del array en html: pero al ejecutar el ...
  #1 (permalink)  
Antiguo 10/10/2013, 09:10
 
Fecha de Ingreso: octubre-2013
Ubicación: Ecuador
Mensajes: 5
Antigüedad: 10 años, 5 meses
Puntos: 0
Array con Html

Por favor necesito que me ayuden con el siguiente codigo, lo que necesito es mostrar los datos del array en html: pero al ejecutar el codigo solo me muestra un dato de todos los satos que tengo en el array:
public function executeShowResult(dmWebRequest $request)
{
$query = $this->getShowQuery();
$test = Doctrine::getTable('Test')
->createQuery('t')
->select('COUNT(tr.value) val_voted,t.name,s.name,e.name,tr.value')
->innerJoin('t.TestResult tr')
->innerJoin('tr.Stimulus s')
->innerJoin('tr.Emotion e')
->where('t.id = ?', $request->getParameter('test'))
->groupBy('s.name, e.name, tr.value')
->orderBy('s.id, e.id, tr.value')
->execute();

$result = array();
foreach ($test as $item) //n1
{
$result[$item->name] = array(); //n2
foreach ($item->getTestResult() as $tr) //n3

{
if(!isset($result[$item->name][$tr->getStimulus()->name]))
$result[$item->name][$tr->getStimulus()->name]= array(
1=>array(),
2=>array(),
3=>array(),
4=>array(),
5=>array(),
);
}
$result[$item->name][$tr->getStimulus()->name][$tr->value][$tr->getEmotion()->name] = $tr->val_voted;
//$result[$item->name][$tr->getStimulus()->name][$tr->value] = $tr->val_voted;
}


// echo('<pre>');
//die(print_r($result));
// $this->test1 = $result;
//echo('</pre>');


$html= '<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">';
foreach ($test as $result=> $a){
$html.= '<tr>';
$html.= '<td>'.$result->name[].'</td>';
$html.= '<td>'.$tr->getStimulus()->name .'</td>';
$html.= '<td>'.$tr->value .'</td>';
$html.= '<td>'.$tr->getEmotion()->name.'</td>';
$html.= '<td>'.$tr->val_voted.'</td>';
$html.= '</tr>';
}

$html.='</table>';
echo $html.'<br>';

}
}



el array es el siguiente:

Array
(
[celular] => Array
(
["Cholular"] => Array
(
[1] => Array
(
[Deseo] => 1
)

[2] => Array
(
[Aceptación] => 1
)

[3] => Array
(
[Satisfaccion] => 1
[Inspiracion] => 1
[Sorpresa Agradable] => 1
[Interes] => 1
[Rechazo] => 1
[Disgusto] => 1
[Verguenza] => 1
[Susto] => 1
)

[4] => Array
(
)

[5] => Array
(
)

)

[Diem] => Array
(
[1] => Array
(
)

[2] => Array
(
)

[3] => Array
(
[Deseo] => 1
[Aceptación] => 1
[Satisfaccion] => 1
[Inspiracion] => 1
[Sorpresa Agradable] => 1
[Interes] => 1
[Rechazo] => 1
)

[4] => Array
(
)

[5] => Array
(
)

)

)

)
1
y lo unico que se muestra en el html es lo siguiente:
Test 1 Diem 3 Rechazo 1
  #2 (permalink)  
Antiguo 10/10/2013, 11:27
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Array con Html

consulte la documentación de foreach en PHP, cuando se usar $key => $value, $key es el índice del array, no el objeto, por el cual está usando al revés
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 10/10/2013, 13:21
 
Fecha de Ingreso: octubre-2013
Ubicación: Ecuador
Mensajes: 5
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Array con Html

siii, disculpa en si el codigo del html lo tengo asi:


$html= '<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">';
foreach ($test as $result){

$html.= '<tr>';
$html.= '<td>'.$result->name.'</td>';
$html.= '<td>'.$tr->getStimulus()->name .'</td>';
$html.= '<td>'.$tr->value .'</td>';
$html.= '<td>'.$tr->getEmotion()->name.'</td>';
$html.= '<td>'.$tr->val_voted.'</td>';
$html.= '</tr>';
}

$html.='</table>';
echo $html.'<br>';

}
}
y eso me da la linea que puse anteriormente
  #4 (permalink)  
Antiguo 10/10/2013, 13:44
Avatar de miguec04  
Fecha de Ingreso: agosto-2008
Ubicación: Cimitarra, Santander
Mensajes: 378
Antigüedad: 15 años, 7 meses
Puntos: 15
Respuesta: Array con Html

una cosa importantisima, por favor usar las etiquetas de codigo php eso se ve muy desordenado.

2. me parece que lo que tiene es un vector con mas vectores, solucion usar un metodo recursivo, o iterar cuantas veces sea necesario cada variable item del foreach con is_array sabes si es o no array cada item en cada array

si no es lo que pides, no entendi la pregunta :(
__________________
Desoftc Technology - Miguel Carmona
Creaciones Inteligentes - Cimitarra Colombia
[email protected]
http://www.desoftc.com.co
  #5 (permalink)  
Antiguo 10/10/2013, 13:49
 
Fecha de Ingreso: octubre-2013
Ubicación: Ecuador
Mensajes: 5
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Array con Html

Código PHP:
Ver original
  1. public function executeShowResult(dmWebRequest $request)
  2.   {
  3.     $query = $this->getShowQuery();
  4.     $test = Doctrine::getTable('Test')
  5.           ->createQuery('t')
  6.           ->select('COUNT(tr.value) val_voted,t.name,s.name,e.name,tr.value')
  7.           ->innerJoin('t.TestResult tr')
  8.           ->innerJoin('tr.Stimulus s')
  9.           ->innerJoin('tr.Emotion e')
  10.           ->where('t.id = ?', $request->getParameter('test'))
  11.           ->groupBy('s.name, e.name, tr.value')
  12.           ->orderBy('s.id, e.id, tr.value')
  13.           ->execute();
  14.  
  15.     $result = array();
  16.     foreach ($test as $item)  //n1
  17.     {
  18.       $result[$item->name] = array(); //n2
  19.        foreach ($item->getTestResult() as $tr) //n3
  20.        
  21.       {  
  22.           if(!isset($result[$item->name][$tr->getStimulus()->name]))
  23.            $result[$item->name][$tr->getStimulus()->name]= array(
  24.             1=>array(),
  25.             2=>array(),
  26.             3=>array(),
  27.             4=>array(),
  28.             5=>array(),
  29.             );
  30.           }
  31.           $result[$item->name][$tr->getStimulus()->name][$tr->value][$tr->getEmotion()->name] = $tr->val_voted;
  32.         //$result[$item->name][$tr->getStimulus()->name][$tr->value] = $tr->val_voted;
  33.        }
  34.  
  35.  
  36.   // echo('<pre>');
  37.   //die(print_r($result));
  38.   // $this->test1 = $result;
  39.   //echo('</pre>');
  40.      
  41.  
  42.     $html= '<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">';
  43.     while(list($item,$stimulus)=each($result)){
  44.       //foreach ($test as $result){
  45.       $html.= '<tr>';
  46.       $html.= '<td>'.$result->name.'</td>';
  47.       $html.= '<td>'.$tr->getStimulus()->name .'</td>';
  48.       $html.= '<td>'.$tr->value .'</td>';
  49.       $html.= '<td>'.$tr->getEmotion()->name.'</td>';      
  50.       $html.= '<td>'.$tr->val_voted.'</td>';
  51.       $html.= '</tr>';
  52.       }
  53.  
  54.    $html.='</table>';
  55.    echo $html.'<br>';
  56.  
  57.     }
  58.   }


esto es lo que tengo hasta ahora, y si es un array dentro de otro array lo que pasa es que al pegarlo aqui se me desordeno :S
  #6 (permalink)  
Antiguo 10/10/2013, 13:57
 
Fecha de Ingreso: octubre-2013
Ubicación: Ecuador
Mensajes: 5
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Array con Html

Código HTML:
Ver original
  1. Array
  2. (
  3.     [celular] => Array
  4.         (
  5.             ["Cholular"] => Array
  6.                 (
  7.                     [1] => Array
  8.                         (
  9.                             [Deseo] => 1
  10.                         )
  11.  
  12.                     [2] => Array
  13.                         (
  14.                             [Aceptación] => 1
  15.                         )
  16.  
  17.                     [3] => Array
  18.                         (
  19.                             [Satisfaccion] => 1
  20.                             [Inspiracion] => 1
  21.                             [Sorpresa Agradable] => 1
  22.                             [Interes] => 1
  23.                             [Rechazo] => 1
  24.                             [Disgusto] => 1
  25.                             [Verguenza] => 1
  26.                             [Susto] => 1
  27.                         )
  28.  
  29.                     [4] => Array
  30.                         (
  31.                         )
  32.  
  33.                     [5] => Array
  34.                         (
  35.                         )
  36.  
  37.                 )
  38.  
  39.             [Diem] => Array
  40.                 (
  41.                     [1] => Array
  42.                         (
  43.                         )
  44.  
  45.                     [2] => Array
  46.                         (
  47.                         )
  48.  
  49.                     [3] => Array
  50.                         (
  51.                             [Deseo] => 1
  52.                             [Aceptación] => 1
  53.                             [Satisfaccion] => 1
  54.                             [Inspiracion] => 1
  55.                             [Sorpresa Agradable] => 1
  56.                             [Interes] => 1
  57.                             [Rechazo] => 1
  58.                         )
  59.  
  60.                     [4] => Array
  61.                         (
  62.                         )
  63.  
  64.                     [5] => Array
  65.                         (
  66.                         )
  67.  
  68.                 )
  69.  
  70.         )
  71.  
  72. )
  73. 1
y este es el array, lo que pretendo hacer es que todos los datos que ya se muestran en forma de array en html no se me presente de esa forma sino los datos directamente x ejemplo:

Test1 producto: Cholular personas que votaron deseo: 1 valor que le dieron: 1
personas que votaron aceptacion:1 valor que le dieron :2
personas que votaron satisfaccion:1 valor que le dieron :3
personas que votaron inspiracion:1 valor que le dieron :3
personas que votaron interes:1 valor que le dieron :3

Test1 producto: Diem personas que votaron deseo: 1 valor que le dieron: 3
personas que votaron aceptacion:1 valor que le dieron :3
personas que votaron satisfaccion:1 valor que le dieron :3
personas que votaron inspiracion:1 valor que le dieron :3
personas que votaron interes:1 valor que le dieron :3

algo asi por ser mas explicativa
  #7 (permalink)  
Antiguo 10/10/2013, 14:06
 
Fecha de Ingreso: octubre-2013
Ubicación: Ecuador
Mensajes: 5
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Array con Html

quiero que me traiga los datos de la siguiente forma y no en tipo array:

Test1

Cholular 1 Deseo 1
2 Aceptacion 1
3 Satisfaccion 1
3 Inspiracion 1
3 Rechazo 1

Diem 3 Deseo 1
3 Aceptacion 1
3 Satisfaccion 1
3 Inspiracion 1
3 Rechazo 1


no se si logre, explicarme.... con el codigo que tengo en html solo me muestra una linea y no me llama todos los datos y eso es lo que quisiera que de favor me ayuden... como hago para mostrar todos los datos:

test: Test1
Stimulus: nombre de los productos
emotion: nombre de las emociones
val_voted: total de personas que han votado

Etiquetas: html, select
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.