Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

FieldCount()

Estas en el tema de FieldCount() en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Que tal amigos del foro... espero me puedan colaborar con la siguiente duda... Tengo el siguiente codigo, el cual me lista en una tabla todos ...
  #1 (permalink)  
Antiguo 11/11/2008, 10:55
 
Fecha de Ingreso: noviembre-2008
Mensajes: 55
Antigüedad: 15 años, 5 meses
Puntos: 0
FieldCount()

Que tal amigos del foro... espero me puedan colaborar con la siguiente duda...
Tengo el siguiente codigo, el cual me lista en una tabla todos los contratistas de una bd. Cuando quiero listar todos, el sistema lo hace perfectamente. Pero, cuando quiero buscar uno en especifico. Es decir, le paso una condicion. Me imprime este advertencia o error

Call to a member function FieldCount() on a non-object on line 247

haciendo refeerencia a est aparte del codigo: for($i=1;$i<$rs->FieldCount();$i++)

El codigo de la funcion es el siguiente:

function admin_contratistas($cond='')
{$tblstart = '<table width="80%" border="1" cellspacing="0" cellpadding="0">';
$tblend = '</table>';
$tr="<tr>\n"; $tre='</tr>';

$db = getbase();
$sql="SELECT contratista.id_contratista, contratista.razon_social, contratista.rut, contratista.nit, contratista.nombre, contratista.apellido, contratista.direccion, contratista.telefono, ciudad.nombre,tipo_documento.descripcion, contratista.numero_documento, tipo_persona.descripcion, contratista.objeto_social from contratista, tipo_documento, ciudad, tipo_persona where contratista.id_tipo_documento=tipo_documento.id_ti po_documento and ciudad.id_ciudad=contratista.id_ciudad and contratista.id_tipo_persona=tipo_persona.id_tipo_p ersona".$cond." ORDER BY contratista.razon_social" ;
$rs = $db->Execute($sql);
echo $tblstart;
while (!$rs->EOF)
{echo $tr;

for($i=1;$i<$rs->FieldCount();$i++)
{echo celda($rs->fields[$i]);
}
$id=$rs->fields[0] ;
echo celda("<a href=scripts/admin.php?action=7&id=$id>Editar</a>");
echo celda("<a href=scripts/admin.php?action=8&id=$id>Borrar</a>");
$rs->MoveNext(); echo $tre; }
echo $tblend;
}

De antemano agradezco su colaboracion
  #2 (permalink)  
Antiguo 12/11/2008, 09:03
Avatar de alfredo13  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Argentina
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: FieldCount()

¿Cuál es el código que se ejecuta al hacer la llamada al método $rs->FieldCount()?

Por lo que veo, la variable $rs, antes de usarse con ->FieldCount() le asignas el resultado de $db->Execute($sql). ¿Qué tipo de dato retorna dicho método?
  #3 (permalink)  
Antiguo 12/11/2008, 16:58
 
Fecha de Ingreso: octubre-2005
Mensajes: 42
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: FieldCount()

Así de primeras tienes un error en la consulta SQL. Despúes del WHERE, en una de las condiciones, el nombre del campo parece tener un espacio donde no debería haberlo.
Código:
where contratista.id_tipo_documento=tipo_documento.id_ti po_documento 
Del código lo único que extraigo es que al realizar la consulta el objeto que devuelve no es el del tipo que debería ser, por lo que lo más probable es que el error esté en la SQL.

Si el error no es el que te he dicho arriba danos más información.
  #4 (permalink)  
Antiguo 13/11/2008, 07:59
 
Fecha de Ingreso: noviembre-2008
Mensajes: 55
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: FieldCount()

Hola... en cuanto a la consulta SQL ese espacio en blanco no es el error, seguramente en el momento de copiar el codigo se modifico...Pero bueno este es el codigo de la funcion getbase() de donde viene lo demas...

function getbase()
{ include('adodb/adodb.inc.php'); // la libreria AdoDB que permite acceder a la base de datos
$url = $_SERVER['PHP_SELF'];
if (stripos($url, '/scripts/') === false) // la ubicación de config depende de quien carge a utiles.php
include('scripts/config.php');
else
include('config.php'); // Servidor donde se encuentra la base de datos, puede ser cualquier ip o dominio enrutable
// login, password y base de datos para conectarse

$db = ADONewConnection('mysql'); // se crea el objeto para conectar con la base de datos, como parámetro se usa el driver (mysql)
// $db->debug = true; // con $db->debug = true nos permite ver información detallada sobre los procesos realizados
$db->Connect($server, $user, $password, $database); // se conecta con el servidor, observe que puede conectarse con multiples servidores al mismo tiempo
return($db);
}

De antemano agradezco a : alfredo13 y CAT Shannon por su dedicacion ante este problema... Gracias!!!
  #5 (permalink)  
Antiguo 13/11/2008, 12:33
Avatar de alfredo13  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Argentina
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: FieldCount()

Me marea un poco leer el código así en crudo =p
Te recomiendo que leas el post donde se instruye en como usar el resaltador de código geishi: http://www.forosdelweb.com/f18/nuevo-resaltador-c-digo-geishi-624896/

Vuelvo a repetir mi consulta anterior:
¿Cuál es el código que se ejecuta al hacer la llamada al método $rs->FieldCount()?

Por lo que veo, la variable $rs, antes de usarse con ->FieldCount() le asignas el resultado de $db->Execute($sql). ¿Qué tipo de dato retorna dicho método?
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:39.