Avisos
Vaciar todo

Script de consulta.  

 
Guillermo
 Guillermo
Usuario experto

Hola,

en esta dirección, http://www.sociedadurgente24.es/index.php/empresas-disponibles
podeis ver que tengo un formulario que tiene un campo llamado "elija empresa".

Este formulario esta hecho en classic mode y el campo lleva asociado un script en PHP que lo que hace es mostrar todos los nombres de todas las empresas que hay en la vista de abajo de content builder.

Este es el script que tengo ahora en las opciones de ese campo:

1;Elija su empresa
0;setQuery("Select `value` From #__facileforms_subrecords Where element = 232 And `name` Like 'Nombre'");
$result = JFactory::getDBO()->loadResultArray();
foreach($result As $res){
$list .= $res."n";
}
return $list;
?>

Eso muestra todos los nombres de empresas. Pero lo que quiero es que el campo de selección me muestre solo los nombres de las empresas que estan disponibles.
Este es el código con el que estoy probando pero no funciona:

setQuery("Select `value`,`record` From #__facileforms_subrecords Where element = 232 And `name` Like 'Nombre'");
$result = JFactory::getDBO()->loadAssocList();
foreach($result As $res){
  JFactory::getDBO()->setQuery("Select `value` From #__facileforms_subrecords Where element = 271 And `value` Like 'http://sociedadurgente24.es/images/nuestras_imagenes/Disponible.png' And `record` = " . $res['record']);
  $disponible = JFactory::getDBO()->loadResult();
  if($disponible){
     $list .= "0;".$res['value'].";".$res['value']."n";
  }
}
return $list;
?>

No se si el problema puede estar relacionado con que el valor del elemento 271 sea una ruta a una imagen. ¿Veis algún error en el código? ¿Se os ocurre otra forma de hacerlo?

gracias y saludos,

Guillermo

Citar
Respondido : 15/11/2011 8:33 am
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola Andrés

Es un poco complejo explicarte si no conocemos los datos que dispones en la tabla jos_facileforms_subrecords , debería haber sólo una consulta sql que obtenga los datos necesarios.

Puedes evaluar la contratación de tiempo de soporte , puedes revisar el siguiente enlace
https://www.webempresa.com/documentacion/Acuerdo_de_contratacion_de_Servicio_Tecnico_Joomla_en_webempresa.com.pdf

Saludos.

ResponderCitar
Respondido : 15/11/2011 10:42 pm

Guillermo
 Guillermo
Usuario experto

Bueno Jhon que puedo decir. Entiendo tu respuesta pero claro lo minimo que se puede contratar reulta un poco caro teniendo en cuenta que lo que estoy pidiendo, es si ves algún error en el código o un consejo de como podría hacerlo, no que me escribais vosotros el codigo.

Pero bueno no pasa nada, por lo menos ya se que lo que tengo que hacer en este caso es buscarme la vida por otro lado. Y no es poco, ya que almenos no pierdo el tiempo.

gracias y saludos,

Guillermo

ResponderCitar
Respondido : 16/11/2011 11:05 am
David Noguera
 David Noguera
Miembro Moderator

Hola Andrés,

que te está devolviendo la variable $list ??

Creo que el error lo tienes en la consulta SQL, evaluas la condición con un LIKE, pero no usas caracteres comodín "%", por tanto, el resultado sería el mismo que si fuera un =.

Cambia esto en tu código y prueba de nuevo:

JFactory::getDBO()->setQuery("Select `value` From #__facileforms_subrecords Where element = 271 And `value` Like '%sociedadurgente24.es/images/nuestras_imagenes/Disponible.png%' And `record` = " . $res['record']);

Fíjate que en la segunda consulta SQL he añadido un comodín % al principio y al final para que devuelva true en caso de que aparezca la ruta de la imagen precedida o seguida de cualquier código... Supongo que en tu tabla tendrás algo así para la imágen:

Y por este motivo el Like devuelve falso siempre..

Saludos

ResponderCitar
Respondido : 18/11/2011 10:05 am

Cursos Gratuitos WordPress

Guillermo
 Guillermo
Usuario experto

Hola David,

muchas gracias por el esfuerzo en contestar aunque lo que me indicas no funciona.

Es una lástima porque cuando he leído tu mensaje esta mañana pensé que iba a funcionar seguro. Tienes toda la razón en lo que dices. No se a lo mejor hay algún otro error en el código a parte de ese. Lo he repasado cincuenta veces y no lo entiendo, no veo porque no funciona.

gracias y saludos,

Guillermo

ResponderCitar
Respondido : 18/11/2011 11:10 am
David Noguera
 David Noguera
Miembro Moderator

Hola Andrés,

pues parece que el fallo está aquí:

JFactory::getDBO()->setQuery("Select `value` From #__facileforms_subrecords Where element = 271 And `value` Like 'sociedadurgente24.es/images/nuestras_imagenes/Disponible.png' And `record` = " . $res['record']);

Podrías decirnos que valor devuelve esa consulta SQL??

Podrías abrir un fichero de log y escribir en un fichero las consultas SQL que vas haciendo en cada pasada del for para que veamos donde está el fallo...

Saludos

ResponderCitar
Respondido : 18/11/2011 4:17 pm

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

Guillermo
 Guillermo
Usuario experto

Bueno, pues resulta que al cambiar a quickmode ya no me funciona ni el script que tenia antes y que solo me recuperaba los nombres de todas las empresas en el listado.

La consulta directamente en el phpMyAdmin me devuelve este error;

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Lo último que me pides no se lo que es David, no soy programador.

gracias y saludos,

Guillermo

ResponderCitar
Respondido : 21/11/2011 9:40 pm
David Noguera
 David Noguera
Miembro Moderator

Por favor peganos la consulta que te da error en el phpMyAdmin.. si da error en el phpMyAdmin es normal que el BreezingForms no devuelva nada...

Saludos

ResponderCitar
Respondido : 22/11/2011 3:47 am

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Guillermo
 Guillermo
Usuario experto

Select `value` From #__facileforms_subrecords Where element = 271 And `value` Like 'sociedadurgente24.es/images/nuestras_imagenes/Disponible.png' And `record` = " . $res['record']

Es lo que he puesto en la consulta.

ResponderCitar
Respondido : 22/11/2011 12:42 pm
David Noguera
 David Noguera
Miembro Moderator

Hicistes el cambio que te comenté?

Select `value` From #__facileforms_subrecords Where element = 271 And `value` Like 'sociedadurgente24.es/images/nuestras_imagenes/Disponible.png' And `record` = " . $res['record']

esto debería ser así:

Select `value` From #__facileforms_subrecords Where element = 271 And `value` Like "%sociedadurgente24.es/images/nuestras_imagenes/Disponible.png%" And `record` = " . $res['record']

Saludos

ResponderCitar
Respondido : 22/11/2011 1:51 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

Guillermo
 Guillermo
Usuario experto

Valeeee. Ya esta funcionando. Finalmente Markus Bopp me ha ayudado también. Tenías razón en lo del % David porque Markus también lo ha puesto. Finalmente el codigo queda así:

setQuery("Select `value`,`record` From #__facileforms_subrecords Where element = 232 And `name` Like 'Nombre'");
$result = JFactory::getDBO()->loadAssocList();

foreach($result As $res){
JFactory::getDBO()->setQuery("Select `value` From #__facileforms_subrecords Where element = 271 And `value` Like '% %' And `record` = " . $res['record']);
$disponible = JFactory::getDBO()->loadResult();

if($disponible){
$list .= "0;".$res['value'].";".$res['value']."n";
}
}

return $list;
?>

gracias y saludos,

Guillermo

ResponderCitar
Respondido : 22/11/2011 3:14 pm
David Noguera
 David Noguera
Miembro Moderator

OK, veo que el problema está en la consulta SQL que no tenía puestos los comodines ya que veo que la consulta que ha quedad al final es la misma que te he indicado en el último post..

Me alegro que lo hayas podido solucionar 🙂

Dejo el post cerrado y marcado como solucionado.

Saludos!

ResponderCitar
Respondido : 22/11/2011 5:04 pm