Foros del Web » Programando para Internet » PHP »

Error Notice: Object of class phpselectform could not be converted to int in

Estas en el tema de Error Notice: Object of class phpselectform could not be converted to int in en el foro de PHP en Foros del Web. Buenas tardes Amigo, Tengo un error en un sistema que estaba funcionando pero fue actualizado las versiones de apache,mysql y php. El error es : ...
  #1 (permalink)  
Antiguo 08/11/2013, 14:12
 
Fecha de Ingreso: noviembre-2013
Mensajes: 2
Antigüedad: 7 años, 10 meses
Puntos: 1
Error Notice: Object of class phpselectform could not be converted to int in

Buenas tardes Amigo,
Tengo un error en un sistema que estaba funcionando pero fue actualizado las versiones de apache,mysql y php.
El error es :
Strict standards: Declaration of phpdbform::draw() should be compatible with phpform::draw($cell = false) in D:\Server\www\caribe\nueva\phpdbform\phpdbform_db. php on line 15

Este es el formulario que quiero ejecutar

<?php
setcookie("Language","portuguese" ); // Set languange

$Language = "portuguese";
include_once("functions.php");
include_once("phpdbform/phpdbform_mysql.php");
include_once("phpdbform/phpdbform_db.php");
include_once("server_info.php");

$db = new phpdbform_db( DATABASE, SERVER, LOGIN, PASSWORD );
$db->connect();
$form = new phpdbform( $db,"empresas","id","codigo,nombreusual","codigo") ;

$form->add_textbox( "codigo", "Codigo :", 04, 04 );
$form->add_textbox( "razonsocial", "Razon Social:", 60 );
$form->add_textbox( "nombreusual", "Nombre Usual:", 15 );
$form->add_textbox( "direccion", "Direccion :", 30 );

$form->process();

print_header("Inventario de Empresas");
$form->draw(true);
print_footer();


y esta es la funcion:

function draw($cell=false)
{
$this->draw_header();
reset($this->fields);
while( $field = each($this->fields) )
{
print "<tr>";
$field[1]->draw();
print "</tr>\n";
}
if($cell) print "<tr><td>";
$this->draw_submit( "Aceptar" );
if($cell) print "</td></tr>";

Luego mas abajo esta el error:

Notice: Object of class phpselectform could not be converted to int in D:\Server\www\caribe\nueva\phpdbform\phpdbform_db. php on line 226


Que me lleva a estas lineas.

function draw()
{
if( $this->selform != 0 ) $this->selform->draw();
phpform::draw();
}


Que esta fallando, el formulario abre a medias.

Agradeceria toda la ayuda que me puedan dar
Gracias a todos.
  #2 (permalink)  
Antiguo 08/11/2013, 14:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 13 años, 5 meses
Puntos: 2534
Respuesta: Error Notice: Object of class phpselectform could not be converted to int

Es simple, ambas definiciones de los métodos deben ser compatibles, es decir, igual número y tipo de argumentos.

Si observas bien el código que tienes, la primer definición del método draw() utiliza un argumento, pero la segunda definición ya no.

El asunto no es si pueden usarlo o no, el asunto es que las definiciones deben ser iguales.

PDTA: Y por favor modera el formato de tus mensajes, no estamos ciegos para que tengas que aumentar y cambiar el color de ciertas partes de tu mensaje.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/11/2013, 14:42
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 14 años, 5 meses
Puntos: 270
Respuesta: Error Notice: Object of class phpselectform could not be converted to int

Ese condicional está comparando algo con cero, y si no lo es, llama a un método de ese algo?
Lo que te esta diciendo php es que no puede convertir el objeto $this->selform (que es una instancia de phpselectform) en un entero, para poder compararlo con cero.
O comparalo con null, o implementa __toString (no recomendado)
  #4 (permalink)  
Antiguo 08/11/2013, 15:00
 
Fecha de Ingreso: noviembre-2013
Mensajes: 2
Antigüedad: 7 años, 10 meses
Puntos: 1
Respuesta: Error Notice: Object of class phpselectform could not be converted to int

Bueno ya elimine el primer error, quedo este :

Notice: Object of class phpselectform could not be converted to int in D:\Server\www\caribe\nueva\phpdbform\phpdbform_db. php on line 226

Notice: Object of class phpselectform could not be converted to int in D:\Server\www\caribe\nueva\phpdbform\phpdbform_db. php on line 234

Notice: Object of class phpselectform could not be converted to int in D:\Server\www\caribe\nueva\phpdbform\phpdbform_db. php on line 240

Notice: Object of class phpselectform could not be converted to int in D:\Server\www\caribe\nueva\phpdbform\phpdbform_db. php on line 270

estas son las lineas de codigo:

function draw($cell=false)
{
if( $this->selform != 0 ) $this->selform->draw();
phpform::draw();
}

function process()
{
global $HTTP_SESSION_VARS, $HTTP_POST_VARS;

if( $this->selform != 0 ) $selformprocessed = $this->selform->process();
if( !phpform::process() )
{
// if this form didn´t processed, see if select processed
// first check if there is a select form
$selected = false;
if( $this->selform != 0 )
{
// See if any key was selected by selform
$selected = $selformprocessed;
if( $selected && !$this->selform->value ) $selected = false;
if( $selected ) $this->keyvalue = $this->selform->value;
}
// If there was no selform, or selform selected nothing
// try to see if the user has set keyvalue
// how user can set keyvalue? using $form->keyvalue = "xxx,xxx"
if( !$selected && count($this->keyvalue) > 0 ) $selected = true;
// Something filled keyvalue, try loading the values into phpdbform
if( $selected )
{
if( $this->select_data() )
{
// found data!
$this->mode = "update";
} else {
// some error occurred, clear phpdbform and set insertmode
$this->clear();
$this->mode = "insert";
}
// nothing was selected, go to insertmode
} else $this->mode = "insert";
// store the key and mode in the session
$HTTP_SESSION_VARS[$this->table."_sess"]["key"] = $this->keyvalue;
// put form in update mode
$HTTP_SESSION_VARS[$this->table."_sess"]["mode"] = $this->mode;
// if there is a select form, fill it with data
if( $this->selform != 0 ) $this->selform->select_data();
return;
}

Las lineas de error estan en negrito.
Que mas tengo que cambiar en el codigo para funcionar?
Agradeciendo ya la ayuda.
  #5 (permalink)  
Antiguo 08/11/2013, 15:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 13 años, 5 meses
Puntos: 2534
Respuesta: Error Notice: Object of class phpselectform could not be converted to int

Un objeto jamás será un número, por lo tanto tu comparación está mal.

Es más fácil hacer esto:
Código PHP:
Ver original
  1. // MAL
  2. if ($this->selform != 0)
  3.  
  4. // BIEN
  5. if ($this->selform)

La comparación está de sobra, no más.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: class, formulario, int, notice, object, select, sql
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:01.