¿Cual es el error d...
Avisos
Vaciar todo

¿Cual es el error de esta instruccion SQL?  

 
Rodrigo
 Rodrigo
Estimable Member

lo que quiero hacer es insertar un dato en una tabla que yo eh hecho llamado jos_documentos
en caso de que ya se haya registrado un registro solo quiero actualizar ese registro de acuerdo al id y en caso contrario que se inserte el nuevo registro con el id que extraigo de la variable de sesion.-
que hago mal en el siguiente codigo.- lo eh puesto en Enviar piezaz de mi formulario breezingforms

$this->execPieceByName('ff_InitLib');
$user = JFactory::getUser();
$id=$user->get('id');
$si=X;
$checa=ff_query("SELECT * FROM jos_documentos WHERE id =$id ");
if(mysql_num_rows($checa)>0) //Cual es el equivalente de esta instruccion en Joomla, tal ves ese es el error
{
//intento Actualizar el campo solicitud y rellenarlo con un 'X'
ff_query("UPDATE serviciosocial.rojilo_documentos SET solicitud =$si WHERE rojilo_documentos.id =$id LIMIT 1");
}
if(mysql_num_rows($checa)==0) //en caso de que no exista ese registro insertarlo
{
ff_query("INSERT INTO serviciosocial.rojilo_documentos(id, solicitud) VALUES ($id, $si)");

}
me arroja el siguiente error

DB function failed with error number 1054
Unknown column 'X' in 'field list' SQL=INSERT INTO serviciosocial.rojilo_documentos(id, solicitud) VALUES (65, X)

gracias por su ayuda

Citar
Respondido : 25/08/2010 2:40 am
Lucas
 Lucas
Miembro Admin

Hola,

Solicitud parece que es un campo alfanumérico y deberías añadir comilla simple en el values.

ResponderCitar
Respondido : 25/08/2010 3:21 am

wpdoctor-revisa-la-salud-de-tu-wordpress

Rodrigo
 Rodrigo
Estimable Member

Si Lucas gracias pero no cosigo evaluar si existe ya un registro, lo que quiero es que en caso de que ya existiera un registro solo lo quiero actualizar

$checa=ff_query("SELECT * FROM jos_documentos WHERE id =$id");//Hago una consulta con el ID de usuarios

if(mysql_num_rows($checa)>0)//esta es una instruccion para php pero no consigo el equivalente a joomla
{
ff_query("UPDATE serviciosocial.jos_documentos SET solicitud =$si WHERE jos_documentos.id =$id LIMIT 1");
}
if(mysql_num_rows($checa)==0)
{
ff_query("INSERT INTO serviciosocial.jos_documentos(id, solicitud) VALUES ($id, '$si')");
}

ResponderCitar
Respondido : 25/08/2010 6:41 pm
Pablo Velasco
 Pablo Velasco
Illustrious Member

Hola,

Lo correcto es que usaras el core de Joomla para generar las consultas sobre la base de datos. Te recomiendo que consultes documentación de Joomla sobre las consultas a las bases de datos.

Para el código que pones tendrías que tener algo como lo siguiente:

$db =& JFactory::getDBO();
$db->setQuery("SELECT * FROM jos_documentos WHERE id =$id");
$total = $db->loadResult();

if ($total>0){
$db->setQuery("UPDATE serviciosocial.jos_documentos SET solicitud =$si WHERE jos_documentos.id =$id LIMIT 1");
}

if ($total==0){
$db->setQuery("INSERT INTO serviciosocial.jos_documentos(id, solicitud) VALUES ($id, '$si')");
}
ResponderCitar
Respondido : 25/08/2010 8:21 pm

Rodrigo
 Rodrigo
Estimable Member

Hola Pablo
gracias lo revisaré, te agradezco mucho la respuesta

ResponderCitar
Respondido : 31/08/2010 2:45 am