[ Foro de PHP ]

duda con error Notice: Undefined index: resultPag in

01-Aug-2014 20:40
oscar gomez
4 Respuestas

hola profesor.
queria preguntarte or el siguiente error que se muestra en una de mis secciones de una pagina web que estoy realizando:

tengo en el archivo, proyectos.php:


<?php
include "php/data.php";

$Data->Consulta("SELECT id,titulo,brevedescripcion,imagen1 FROM proyectos", $Proyectos, $numFilas, $Campos);

if ($_GET['resultPag'] < 2 || !isset($_GET['resultPag']))
	$resultPag = 6;
else
{
	$resultPag = $_GET['resultPag'];
	
}	
$numPaginas = ceil($numFilas/$resultPag);


...

la cuestion es que me registra el error Notice: Undefined index: resultPag in ...
he leido y parece ser que se debe a que estoy accediendo a un array cuyo indice no existe y me gustaria pedir tu ayuda a que deboi hacer entonces para que este error no me resulte, la cuestion es que me sale en muchas mas variables de este tipo, que debo hacer, y como evitar este tipo de error, ? me lo podrias explicar a traves del fragmento de codigo que te expuse, gracias


01-Aug-2014 23:08
Nacho Cabanes (+84)

Estás haciendo lo que debes, pero en orden incorrecto: debes usar "isset" para ver si la variable está definida, pero lo estás haciendo después de haber intentado mirar su valor, de modo que el "warning" ya ha saltado.

Prueba a cambiar esto ("si el valor es menor que dos o no existe")


if ($_GET['resultPag'] < 2 || !isset($_GET['resultPag']))
	$resultPag = 6;
else
{
	$resultPag = $_GET['resultPag'];
}	


por esto otro ("si es valor existe y es mayor o igual que dos"):


if (isset($_GET['resultPag']) && ($_GET['resultPag'] >= 2))
	$resultPag = $_GET['resultPag'];
else
	$resultPag = 6;




03-Aug-2014 12:45
oscar gomez

Excelente profesor Nacho , muchas gracias.


04-Aug-2014 11:02
Jose Valdes Sirvent

esto..
$Data->Consulta("SELECT id,titulo,brevedescripcion,imagen1 FROM proyectos", $Proyectos, $numFilas, $Campos);
supongo que es una función que te has hecho? qué hace exactamente?, la select la entiendo, lo que no entiendo son las variables que le envias a la función...
y qué hace exactamente ese $Data->??
qué es el "->" ??, yo lo estoy usando en mi código para asignar key/value en arrays, y en la función que os enseñé de phpmailer, lo utilizo de esta manera:

phpSender -> Host = 'smtp.gmail.com';

que es algo así como.. de la variable phpSender, cambiale el valor de su propiedad Host a 'smtp..'.

Alguna explicación más clara? en qué otras situaciones se puede usar??

Muchas gracias!!


04-Aug-2014 16:09
oscar gomez

hola compañero jose valdes.

respondiendo a tus inquietudes queria antes decirte que en tu link de emails que planteaste hace unas semanas, te respondia que si te interesaba podiamos formar un equipo a lo cual no se que pensaste, mi direccion es luzoscar2002@hotmail.com

no se si hayas ya realizado alguna o algunas paginas web?

te comento efectivamente es una funcion que me he creado y que devuelve o selecciona todas las columnas de todas las filas de la consulta realizada sobre una tabla en epecial y que te la paso por si te sirve de algo:

function Consulta($consulta, &$resultado, &$num_filas, &$Campos){

if($this->Modo == 0){
$resultado = mysqli_query($consulta,$this->ConexionActiva) or die("<B>Imposible realizar consulta / Not valid query</B>");
$num_filas = mysqli_num_rows($resultado);
}

if($this->Modo == 1){
if(!$Query=mysqli_query($consulta,$this->ConexionActiva)){
$this->MostrarError(mysqli_errno(),mysqli_error(),$consulta);
}
else{
if(!$Campos=mysqli_num_fields($Query)){
$this->MostrarError(mysqli_errno(),mysqli_error());
}
else{
$num_filas = mysqli_num_rows($Query);
for ($j=0; $j<$num_filas; $j++){
for($i=0;$i<$Campos;$i++){
if(!$NombreCampo=mysqli_field_table ($Query, $i).".".mysqli_field_name($Query,$i)){
$this->MostrarError(mysqli_errno(),mysqli_error());
}
else{
$Comprueba=mysqli_result($Query, $j ,$NombreCampo);
if($Comprueba != ""){
$resultado[$NombreCampo][$j]=$Comprueba;
}
elseif($Comprueba == ""){
$resultado[$NombreCampo][$j]=$Comprueba;
}
}
}
}
}
}
}
}


lo que va dentro del parentesis son parametros como me imagino ya sabes en el concepto de funciones.

el $data -> esta basado en el concepto de propiedades en programacion orientada a objetos y bueno en este caso lo que obtiene son los proyectos de una pagina que estoy realizando.
referente a lo que me preguntas de ->  espero que cuando inicies a estudiar php orientada a objetos te des cuenta que es un concepto mas de esta metodologia de programacion.

si gustas escribeme al correo que te deje y vemos cosas vale ?









(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)