Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Mostar solo 1er registro y loop para los demas en PHP (https://www.clubdelphi.com/foros/showthread.php?t=89154)

Jose Roman 05-10-2015 18:14:50

Mostar solo 1er registro y loop para los demas en PHP
 
Cordial saludo,

Tengo una consulta SQL en MySql la cual da los siguientes registros:
Cita:

NOMBRE - IDENTI - ID_PRO
SILVA TORRES ELIANA - 1151951743 - 8613
SILVA TORRES ELIANA - 1151951743 - 8761
SILVA TORRES ELIANA - 1151951743 - 8808
SILVA TORRES ELIANA - 1151951743 - 9141
SILVA TORRES ELIANA - 1151951743 - 9142
SILVA TORRES ELIANA - 1151951743 - 9143
Necesito un Array el cual muestre asi:

Cita:

[{"NOMBRE":"SILVA TORRES ELIANA","IDENTI":"1151951743","ID_PRO0":"8613","ID_PRO1":"8761","ID_PRO2":"8808","ID_PRO3":"9141","I D_PRO4":"9142",ID_PRO5":"9143"}]
Pero lo que obtengo es esto:

Cita:

[{"NOMBRE":"SILVA TORRES ELIANA","IDENTI":"1151951743","ID_PRO0":"8613"},{"NOMBRE":"SILVA TORRES ELIANA","IDENTI":"1151951743","ID_PRO0":"8613","ID_PRO1":"8761"},{"NOMBRE":"SILVA TORRES ELIANA","IDENTI":"1151951743","ID_PRO0":"8613","ID_PRO1":"8761","ID_PRO2":"8808"},{"NOMBRE":"SILVA TORRES ELIANA","IDENTI":"1151951743","ID_PRO0":"8613","ID_PRO1":"8761","ID_PRO2":"8808","ID_PRO3":"9141"},{ "NOMBRE":"SILVA TORRES ELIANA","IDENTI":"1151951743","ID_PRO0":"8613","ID_PRO1":"8761","ID_PRO2":"8808","ID_PRO3":"9141","I D_PRO4":"9142"},{"NOMBRE":"SILVA TORRES ELIANA","IDENTI":"1151951743","ID_PRO0":"8613","ID_PRO1":"8761","ID_PRO2":"8808","ID_PRO3":"9141","I D_PRO4":"9142","ID_PRO5":"9143"}]
Soy muy novato en PHP y lo poco que hice en el archivo es buscando en internet, pero hay cosas que no manejo. Adjunto el archivo PHP para ayuda en el codigo.

Código PHP:

<?php

  $ID 
$_GET["ID"];

  
$db=new PDO('mysql:dbname=lfpdb;host=localhost;','root','');
  
  
$row=$db->prepare('SELECT NOMBRE,IDENTI,ID_PRO FROM ALUMNO JOIN PRODUCCION ON ID_ALU = ALUMNO WHERE ID_ALU= :ID');
  
  
$row->bindParam(':ID',$ID,PDO::PARAM_STR,6);
  
  
$row->execute();
  
  
$json_data=array();
  
  
$num 0;
  
  foreach(
$row as $rec)
  {  
    
$json_array['NOMBRE']=$rec['NOMBRE'];  
    
$json_array['IDENTI']=$rec['IDENTI']; 
    
$str = (string) $num;
    
$json_array["ID_PRO$str"]=$rec['ID_PRO'];  
    
array_push($json_data,$json_array);  
    
$num++;
  }  
  
  echo 
json_encode($json_data); 

?>

Gracias de antemano.

Ñuño Martínez 05-10-2015 18:55:31

Evidentemente, tu problema está en el bucle foreach. No lo uses y añade únicamente el primer elemento encontrado. Nunca he usado PDO, pero seguro que tiene un método para obtener el primer registro.

Jose Roman 05-10-2015 19:01:57

Gracias por tu respuesta, segun pude investigar el PDO lo utilizo para enviar un parametro a la consulta, pero he tratatado de realizar solo el primer registro pero me da error.

Problema solucionado,
Solo debia colocar
array_push($json_data,$json_array);
Fuera del loop.

Mil gracias por tu interes.

Ñuño Martínez 06-10-2015 10:13:51

De nada. Para eso estamos aquí. :D

Jose Roman 06-10-2015 18:22:03

Ñuño Martínez sabes programar Android?

Ñuño Martínez 07-10-2015 10:30:36

Técnicamente, sí que sé. Pero creo que esto ya se sale del tema del foro y deberías buscar y abrir otro hilo si no encuentras nada.


La franja horaria es GMT +2. Ahora son las 12:10:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi