Foros del Web » Programando para Internet » PHP »

JqGrid y Php

Estas en el tema de JqGrid y Php en el foro de PHP en Foros del Web. estoy usando JqGrip para realizar una pagina web de un restaurante... pero me esta tirando un error en el php cuando intento crear una grid ...
  #1 (permalink)  
Antiguo 28/10/2012, 18:13
 
Fecha de Ingreso: septiembre-2012
Ubicación: Ituzaingo
Mensajes: 45
Antigüedad: 11 años, 5 meses
Puntos: 0
JqGrid y Php

estoy usando JqGrip para realizar una pagina web de un restaurante... pero me esta tirando un error en el php cuando intento crear una grid tipo "subgrid"..
les paso el codigo del js:

Código:
jQuery("#list11").jqGrid({
   	url:'subgrid.php?q=1',
	datatype: "xml",
	height: 200,
   	colNames:['Nro_ticket','Nro_mesa', 'Total'],
   	colModel:[
   		{name:'nro_ticket',index:'nro_ticket', width:55},
   		{name:'nro_mesa',index:'nro_mesa', width:90},
   		{name:'Total',index:'Total', width:100}		
   	],
   	rowNum:10,
   	rowList:[10,20,30],
   	pager: '#pager11',
   	sortname: 'nro_ticket',
    viewrecords: true,
    sortorder: "desc",
	multiselect: false,
	subGrid : true,
	subGridUrl: 'subgrid.php?q=2',
    subGridModel: [{ name  : ['Descripcion','Precio'], 
                    width : [100,200] } 
    ],
    caption: "Ticket"
	
});
jQuery("#list11").jqGrid('navGrid','#pager11',{add:false,edit:false,del:false});
este es el codigo php:

Código PHP:
include("dbconfig.php");
// coment the above lines if php 5

//include("JSON.php");
//$json = new Services_JSON();
//end comment
$examp = $_REQUEST["q"]; //query number

$page = $_REQUEST['page']; // get the requested page
$limit = $_REQUEST['rows']; // get how many rows we want to have into the grid
$sidx = $_REQUEST['sidx']; // get index row - i.e. user click to sort
$sord = $_REQUEST['sord']; // get the direction

if(!$sidx) $sidx =1;
if(!$sord) $sord ="asc";
if(!$limit) $limit =10;

// search options
// IMPORTANT NOTE!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// this type of constructing is not recommendet
// it is only for demonstration
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
$wh = "";
$searchOn = Strip($_REQUEST['_search']);
if($searchOn=='true') {
    $fld = Strip($_REQUEST['searchField']);
    if( $fld=='num' || $fld =='item' || $fld=='qty' || $fld=='unit'  ) {
        $fldata = Strip($_REQUEST['searchString']);
        $foper = Strip($_REQUEST['searchOper']);
        // costruct where
        $wh .= " AND ".$fld;
        switch ($foper) {
            case "bw":
                $fldata .= "%";
                $wh .= " LIKE '".$fldata."'";
                break;
            case "eq":
                if(is_numeric($fldata)) {
                    $wh .= " = ".$fldata;
                } else {
                    $wh .= " = '".$fldata."'";
                }
                break;
            case "ne":
                if(is_numeric($fldata)) {
                    $wh .= " <> ".$fldata;
                } else {
                    $wh .= " <> '".$fldata."'";
                }
                break;
            case "lt":
                if(is_numeric($fldata)) {
                    $wh .= " < ".$fldata;
                } else {
                    $wh .= " < '".$fldata."'";
                }
                break;
            case "le":
                if(is_numeric($fldata)) {
                    $wh .= " <= ".$fldata;
                } else {
                    $wh .= " <= '".$fldata."'";
                }
                break;
            case "gt":
                if(is_numeric($fldata)) {
                    $wh .= " > ".$fldata;
                } else {
                    $wh .= " > '".$fldata."'";
                }
                break;
            case "ge":
                if(is_numeric($fldata)) {
                    $wh .= " >= ".$fldata;
                } else {
                    $wh .= " >= '".$fldata."'";
                }
                break;
            case "ew":
                $wh .= " LIKE '%".$fldata."'";
                break;
            case "ew":
                $wh .= " LIKE '%".$fldata."%'";
                break;
            default :
                $wh = "";
        }
    }
}


// connect to the database
$db = mysql_connect($dbhost, $dbuser, $dbpassword)
or die("Connection Error: " . mysql_error());

mysql_select_db($database) or die("Error conecting to db.");

switch ($examp) {
    case 1:
        
        $result = mysql_query("SELECT COUNT(*) AS count FROM ticket ".$wh);
        $row = mysql_fetch_array($result,MYSQL_ASSOC);
        $count = $row['count'];
        if( $count >0 ) {
            $total_pages = ceil($count/$limit);
        } else {
            $total_pages = 0;
        }
        if ($page > $total_pages) $page=$total_pages;
        $start = $limit*$page - $limit; // do not put $limit*($page - 1)
        if ($start<0) $start = 0;
        $SQL = "SELECT T.nro_ticket,T.nro_mesa,SUM(P.precio)+SUM(B.precio) as Total FROM `ticket` as T inner join posee as Pb on T.nro_ticket = Pb.nro_ticket inner join tiene as Tp on T.nro_ticket = Tp.nro_ticket inner join bebida as B on Pb.nro_bebida = B.nro_bebida inner join plato as P on P.nro_plato = Tp.nro_plato where 1=1 ".$wh." group by T.nro_ticket  ORDER BY $sidx $sord LIMIT $start , $limit";
        
        $result = mysql_query( $SQL ) or die("Couldn’t execute query.".mysql_error());
        $responce->page = $page;
        $responce->total = $total_pages;
        $responce->records = $count;
        $i=0;
        while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
            $responce->rows[$i]['nro_ticket']=$row['nro_ticket'];
            $responce->rows[$i]['cell']=array($row['nro_ticket'],$row['nro_mesa'],$row['Total']);
            $i++;
        } 
        //echo $json->encode($responce);
        echo json_encode($responce);
        break;
    case 2:
        $id = $_GET['id'];
        $SQL = "SELECT B.descripcion as Descripcion,B.precio as Precio FROM `ticket` as T inner join posee as Pb on T.nro_ticket = Pb.nro_ticket inner join tiene as Tp on T.nro_ticket = Tp.nro_ticket inner join bebida as B on Pb.nro_bebida = B.nro_bebida inner join plato as P on P.nro_plato = Tp.nro_plato where T.nro_Ticket = ".$id."group by T.nro_ticket
union
SELECT P.descripcion as Descripcion,P.precio as Precio FROM `ticket` as T inner join posee as Pb on T.nro_ticket = Pb.nro_ticket inner join tiene as Tp on T.nro_ticket = Tp.nro_ticket inner join bebida as B on Pb.nro_bebida = B.nro_bebida inner join plato as P on P.nro_plato = Tp.nro_plato where T.nro_ticket = ".$id." group by T.nro_ticket ORDER BY nro_ticket";
        $result = mysql_query( $SQL ) or die("Couldn?t execute query.".mysql_error());

        if ( stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml") ) {
        header("Content-type: application/xhtml+xml;charset=utf-8"); } else {
        header("Content-type: text/xml;charset=utf-8");
        }
        $et = ">";
        echo "<?xml version='1.0' encoding='utf-8'?$etn";
        echo "
<rows>";
        // be sure to put text data in CDATA
        while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
            echo "
<row>";            
            echo "
<cell>". $row['Descripcion']."</cell>";
            echo "
<cell><![CDATA[". $row['precio']."]]></cell>";
            echo "
</row>";
        }                
        break;
}
function Strip($value)
{
    if(get_magic_quotes_gpc() != 0)
      {
        if(is_array($value))  
            if ( array_is_associative($value) )
            {
                foreach( $value as $k=>$v)
                    $tmp_val[$k] = stripslashes($v);
                $value = $tmp_val; 
            }                
            else  
                for($j = 0; $j < sizeof($value); $j++)
                    $value[$j] = stripslashes($value[$j]);
        else
            $value = stripslashes($value);
    }
    return $value;
}
function array_is_associative ($array)
{
    if ( is_array($array) && ! empty($array) )
    {
        for ( $iterator = count($array) - 1; $iterator; $iterator-- )
        {
            if ( ! array_key_exists($iterator, $array) ) { return true; }
        }
        return ! array_key_exists(0, $array);
    }
    return false;
}

el error es el siguiente:

Código:
<br />
<b>Warning</b>:  Creating default object from empty value in <b>C:\xampp\htdocs\jqgrid\subgrid.php</b> on line <b>116</b><br />
{"page":"1","total":1,"records":"5","rows":[{"nro_ticket":"104","cell":["104","7","709"]},{"nro_ticket":"103","cell":["103","9","124"]},{"nro_ticket":"102","cell":["102","4","122"]},{"nro_ticket":"101","cell":["101","6","110"]},{"nro_ticket":"100","cell":["100","3","457"]}]
el problema es que la variable tiene contendido asi que no tengo ni idea porque me tira ese error. Y el segundo problema es que no me muestra nada en la grilla...
Si tienen idea como puedo arreglarlo se los voy a agradescer. Saludos,Mery
__________________
La vida es un asco, disfrutala....
  #2 (permalink)  
Antiguo 28/10/2012, 23:41
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: JqGrid y Php

No sé cual es la línea del error, pero basándonos en la salida y el código, podría ser esta:

$responce->page = $page;

Ahora la pregunta del millón: Dónde defines la variable $responce?

El mensaje se refiere a que estás asignando una propiedad para un objeto vacío (no definido) y sólo tienes que agregar la siguiente línea antes de comenzar a usar tu variable:

$responce = new stdClass();
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 29/10/2012, 17:55
 
Fecha de Ingreso: septiembre-2012
Ubicación: Ituzaingo
Mensajes: 45
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: JqGrid y Php

Cita:
Iniciado por Triby Ver Mensaje
No sé cual es la línea del error, pero basándonos en la salida y el código, podría ser esta:

$responce->page = $page;

Ahora la pregunta del millón: Dónde defines la variable $responce?

El mensaje se refiere a que estás asignando una propiedad para un objeto vacío (no definido) y sólo tienes que agregar la siguiente línea antes de comenzar a usar tu variable:

$responce = new stdClass();
puse la linea que me dijiste pero sigue tirando el mismo error... :(
__________________
La vida es un asco, disfrutala....
  #4 (permalink)  
Antiguo 23/10/2013, 14:46
 
Fecha de Ingreso: marzo-2010
Mensajes: 5
Antigüedad: 14 años
Puntos: 0
Respuesta: JqGrid y Php

Cita:
Iniciado por Triby Ver Mensaje
No sé cual es la línea del error, pero basándonos en la salida y el código, podría ser esta:

$responce->page = $page;

Ahora la pregunta del millón: Dónde defines la variable $responce?

El mensaje se refiere a que estás asignando una propiedad para un objeto vacío (no definido) y sólo tienes que agregar la siguiente línea antes de comenzar a usar tu variable:

$responce = new stdClass();
Muchas gracias esta solución si me sirvió a mi resulta que me arrojaba ese warning pero como me funcionaba perfectamente no le pare, pero un dia solo dejo de funcionar pero solo definí tal cual lu suguieres y bingo un millon bro!

Etiquetas: html, jqgrid, mysql, sql, variables
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 03:19.