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

¿Cual es el error de esta instruccion SQL?

5 Respuestas
3 Usuarios
0 Reactions
5,974 Visitas
Rodrigo
Respuestas: 181
Estimable Member
Topic starter
 

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


 
Respondido : 25/08/2010 1:40 am
Lucas
Respuestas: 905
Prominent Member Admin
 

Hola,

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


 
Respondido : 25/08/2010 2:21 am
Rodrigo
Respuestas: 181
Estimable Member
Topic starter
 

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')");
}


 
Respondido : 25/08/2010 5:41 pm
Pablo Velasco
Respuestas: 20382
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')");
}

 
Respondido : 25/08/2010 7:21 pm
Rodrigo
Respuestas: 181
Estimable Member
Topic starter
 

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


 
Respondido : 31/08/2010 1:45 am