Foros del Web » Programando para Internet » PHP »

Armar json desde bd

Estas en el tema de Armar json desde bd en el foro de PHP en Foros del Web. Hola Amigos!!! estoy trabajando con datatables y viene con un script para llenar las tablas desde la bd mi problema es que un campo de ...
  #1 (permalink)  
Antiguo 28/03/2012, 12:44
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 557
Antigüedad: 13 años, 6 meses
Puntos: 4
Armar json desde bd

Hola Amigos!!!
estoy trabajando con datatables
y viene con un script para llenar las tablas desde la bd
mi problema es que un campo de la d esta como tipo text
y guarde la informacion de esta manera
ejemplo
1|2|3|4|5
para despues hacer un explode() y relacionar cada valor separado con un id de otra tabla
bueno con el script de datatables no me sale
es este

Código PHP:
Ver original
  1. $sql=mysql_query("select C.compra_arti_id,C.compra_cantidad,C.compra_precio,C.compra_iva from compras C",Conectar::con()) or die(mysql_error());
  2.  
  3.  while($ro=mysql_fetch_array($sql))
  4.  {
  5.   $d=str_replace(' ','',$ro['compra_arti_id']);
  6.   $cod=explode('|',$d);
  7.   for($ii=0;$ii<count($cod);$ii++){
  8.  
  9.    
  10.        
  11. $aColumns= array('compra_id', 'razon_social', 'CONCAT(compra_num_suc,"-",compra_num_com)','compra_fecha','CONCAT(moneda_id," 1.0000 >> $ ",FORMAT(compra_coti, 4))','descripcion','compra_cantidad','compra_precio','compra_iva','compra_iva');
  12.  
  13. /* Indexed column (used for fast and accurate table cardinality) */
  14. $sIndexColumn = "compra_id";
  15.  
  16. /* DB table to use */
  17. $sTable= "compras";
  18.  
  19.  
  20.  
  21.  $sQuery = "
  22.         SELECT  SQL_CALC_FOUND_ROWS " . str_replace(" , ", " ", implode(",", $aColumns)) . "
  23.         FROM   $sTable C INNER JOIN  proveedores P ON C.compra_cod_prov=P.proveedor_id
  24.                          INNER JOIN monedas M ON C.compra_moneda=M.mone_id
  25.                          INNER JOIN articulos A  ON A.arti_id=".$cod[$ii]."  
  26.         $sWhere
  27.         $sOrder
  28.         $sLimit
  29.     ";
  30.  
  31. $rResult = mysql_query($sQuery, Conectar::con()) or die(mysql_error());
  32.  
  33. /* Data set length after filtering */
  34. $sQuery = "
  35.         SELECT FOUND_ROWS()
  36.     ";
  37. $rResultFilterTotal = mysql_query($sQuery, Conectar::con()) or die(mysql_error());
  38. $aResultFilterTotal = mysql_fetch_array($rResultFilterTotal);
  39. $iFilteredTotal = $aResultFilterTotal[0];
  40.  
  41. /* Total data set length */
  42. $sQuery = "
  43.         SELECT COUNT(" . $sIndexColumn . ")
  44.         FROM   $sTable
  45.     ";
  46. $rResultTotal = mysql_query($sQuery, Conectar::con()) or die(mysql_error());
  47. $aResultTotal = mysql_fetch_array($rResultTotal);
  48. $iTotal = $aResultTotal[0];
  49.    
  50.  
  51. /*
  52.  * Output
  53.  */
  54. $output= array(
  55.     "sEcho" => intval($_GET['sEcho']),
  56.     "iTotalRecords" => $iTotal,
  57.     "iTotalDisplayRecords" => $iFilteredTotal,
  58.     "aaData" => array()
  59. );
  60.  
  61. while ($aRow = mysql_fetch_array($rResult)) {
  62.     $row= array();
  63.     for ($i = 0; $i < count($aColumns); $i++) {
  64.         if ($aColumns[$i] == "version") {
  65.             /* Special output formatting for 'version' column */
  66.             $row[] = ($aRow[$aColumns[$i]] == "0") ? '-' : $aRow[$aColumns[$i]];
  67.         } else if ($aColumns[$i] != ' ') {
  68.             /* General output */
  69.             $row[] = $aRow[$aColumns[$i]];
  70.         }
  71.     }
  72.  
  73.     $output['aaData'][]= $row;
  74. }
  75. ////////////////////
  76.  
  77.  }
  78.  }
  79. echo json_encode($output);
si le hago un echo a $sQuery el bucle lo hace perfectamente
pero por $output saca solamente 2 registros
si alguien puede ayudarme a resolver esto se lo voy a agradecer mucho
Saludos!!!

Etiquetas: armar, bd, json, mysql, registro, sql, tabla
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 18:14.