|
||
|
#21
|
||||
|
||||
|
Es que en el post #3 ya dejó claro que no quería usar otra aplicación.
![]() Y no es que no sea un proyecto interesante inventar algo que notifique a los otros usuarios que la DB ha sufrido cambios para que procedan a descargarla, que lo es. Pero sería trabajo perdido si al final tira por la solución de usar una DB remota, que al margen de su complejidad (y después de mirarlo un poco ya no me lo parece tanto) yo diría que es la mejor solución al problema. ![]() |
| Gracias de parte de: | ||
|
|
|
#22
|
||||
|
||||
|
No me refería a notificar a los otros usuarios de que la BD ha sufrido cambios, sino a que la propia notificación contenga información útil que se pueda integrar directamente en la base de datos local.
La única pega que veo así rápido sería el tener que usar otra aplicación extra, y bueno, que es una solución un tanto ñapa... ![]() ![]() Y luego está el pequeño problema de que la versión gratuita de AutoRemote sólo permite enviar dos caracteres ... https://play.google.com/store/apps/d...utoremote.lite Nada que no se pueda solucionar convenciendo a RSC y sus colegas de que cada uno de ellos compre la versión completa por poco más de 3,5 €. https://play.google.com/store/apps/d...gcd.autoremote ![]() Una aplicación extra, que tienen que comprar, para hacer una ñapa por no montar un WebService que ya está casi hecho. Vale ...
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
| Gracias de parte de: | ||
|
#23
|
||||
|
||||
|
Realmente, es que poco a poco se ha ido "desviando" la cuestión inicial. Entre comillas porque no ha sido un desvío que haya dejado de lado la consulta, si no que ha surgido una idea alternativa y en caso de que funcione, mucho más efectiva para no tener que comunicarme con los otros teléfonos.
Digo esto, por que quizás en algún momento procede modificar el título de la consulta, ya que sería interesante que si hay un hilo en el que se consiga trabajar desde tasker en una DB ubicada en un servidor, estaría bien que sea fácil de localizar. Creo que podría dar mucho juego. No obstante, por ahora no he logrado que funcione ni tengo muy claro donde tengo que poner cada parte del código que figura en la página que ha compartido WillyWeb, aunque tampoco he tenido mucho tiempo para probar. Iré comentando en caso de que haga algún avance. Un saludo. |
|
#24
|
||||
|
||||
|
La verdad es que sí que nos hemos ido un poco del tema inicial y puede que sea buena idea cambiar el título del tema.
![]() Si decides seguir con lo de la DB remota no te olvides de comentar tus progresos. Y si necesitas ayuda con el tema ... ya sabes.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
#25
|
||||
|
||||
|
Puede aprovechar casi todo lo que tiene hecho, ya que seguiría funcionando en local y sería añadir un envío/recepción de notificación con las modificaciones realizadas (por ejemplo si se ha hecho un insert, enviar la consulta entera del insert en la notificación)
![]() Pero claro, yo si que tengo la versión de pago de AR desde que utilizo Tasker, y realmente para el que la use, no es dinero. Pero no quiero pedirles que se compren una app, que no van a utilizar nada más que para esto. Sobretodo por que la idea de esta app, es que sea menos engorroso llevar a cabo la contabilidad, y de no ser así, decidirían seguir usando un excel en la nube como hicimos el año pasado. No obstante, esto mismo que has comentado se podría hacer con cualquier otra app de mensajería, de las que todos llevamos instaladas en el teléfono. Sería también un poco chapuza, pero podría funcionar. Aún así, continuaré intentando lo de la DB en el servidor, que sigue siendo la solución más atractiva. Eso lo dejo a criterio de los que os encargáis de que el foro esté bien organizado. Se agradece, y todo apunta a que voy a necesitarla. |
|
#26
|
||||
|
||||
|
En el código que figura en ese enlace, únicamente soy capaz de completar, lo que indica literalmente que va en ese lugar. Como cuando se refiere a ('servidor','usuario','clave') etc, pero hay muchos campos que no soy capaz de averiguar que tengo que poner.
También creo que es complicado entender ese método que comenta de configurar las consultas en un archivo XML. Creo que me va a hacer falta más ayuda de la que pensaba para conseguir esto... Quien lea mis comentarios de hace 3 o 4 años, comprobará que no sabía ni como funcionaban las variables.
|
| Gracias de parte de: | ||
|
#27
|
||||
|
||||
|
Como ya has podido ver el sistema se basa en dos archivos. Un PHP (webservice.php) con el código del WebService y un XML (opciones.xml) con las consultas SQL que usa el proyecto.
El código PHP lo he puesto aquí (https://pastebin.com/qERR9wYq) para que sea más fácil de leer. En ese archivo debes cambiar las líneas 56 (servidor_base_datos, usuario, clave) y 57 (base_de_datos) por los valores correspondientes a tu base de datos. Y si quieres (no es obligatorio) también podrías cambiar en las líneas 3, 4 y 5 las palabras clave 'opcion', 'listaParametros' y 'format' por otras más cortas. Esas "palabras" son los nombres de los parámetros que se pasan al WebService en la URL de esta forma... Código:
http://servidor/webservice.php?opcion=oooo&listaParametros=pppp&format=ffff El archivo XML, que también he puesto aquí (https://pastebin.com/jbWf708h) para que se vea mejor, contiene las sentencias SQL que necesita tu proyecto. Puede que esta parte sea la más complicada de entender, pero es la que hace de este sistema una solución casi universal para este tipo de proyectos. Si te fijas bien en el XML tienes varios bloques <opcion>...</opcion>, uno por cada sentencia SQL que necesites. Y dentro de cada <opcion> tienes un <nombre>...</nombre> y un <SQL>...</SQL>. En <nombre> puedes pones lo que quieras pero te recomiendo usar términos descriptivos del propósito de la sentencia SQL. Si has creado una sentencia para listar los goles de un jugador yo usaría 'golesjugador'. Si tienes otra para obtener el listado de todos los jugadores podrías usar 'listajugadores'. Y así con todas las demás sentencias que necesites. Evidentemente en el campo <SQL> tienes que poner la sentencia SQL, pero con un pequeño matiz. Si esa sentencia tiene un parámetro que pueda ser variable (como el nombre del jugador) debes poner '#PARAMETRO_1#' en su lugar (mira la línea 9 del XML de ejemplo). Si la sentencia tiene más de un parámetro de ese tipo pones '#PARAMETRO_1#' y '#PARAMETRO_2#'. Y así con todos los parámetros que necesite la sentencia. Suponiendo que ya tienes todo montado tal y como te he propuesto conseguir la lista de jugadores en formato JSON sería algo así... Código:
http://servidor/webservice.php?opc=listajugadores&fmt=json Código:
http://servidor/webservice.php?opc=golesjugador&par=juan&fmt=json Código:
http://servidor/webservice.php?opc=nombre&par=param1#param2#param3 ¿Mejor ahora?
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) Última edición por WillyWeb Día 19/09/17 a las 12:16:22. Razón: Error en separador de valores de la URL |
| Los siguientes 2 usuarios han agradecido a WillyWeb su comentario: | ||
|
#28
|
||||
|
||||
|
Mucho mejor, el único problema es que tenía cosas que hacer esta mañana, y esto me ha atrapado jeje
He modificado el código PHP así como el XML con los parámetros relativos a mi DB. En lo que se refiera al XML, entiendo que si únicamente quiero hacer una consulta, solo hace falta un bloque, no? Lo digo por simplificar la sentencia hasta que lo domine. <?xml version="1.0" encoding="utf-8" ?> <OpcionesDisponibles> <opcion> <nombre>listajugadores</nombre> <SQL>SELECT jugador FROM goleadores order by jugador = '#PARAMETRO_1#</SQL> //Sentencia incorrecta. <SQL>SELECT jugador FROM goleadores ORDER BY '#PARAMETRO_1#' ASC</SQL> // Sentencia que sustituye a la línea anterior, correcta. </opcion> La siguiente duda que tengo es donde va cada cosa. Tengo el cógido PHP y el XML modificado, los códigos que me has indicado para conseguir las listas de los jugadores, goles etc, pero ese es el problema, no se donde tengo que poner cada código, donde tengo que guardar el archivo XML... Le estoy echando mucha cara, porque se que me lo estas poniendo muy fácil y aún así no lo termino de comprender... Última edición por Rsc Día 19/09/17 a las 23:58:38. |
|
#29
|
||||
|
||||
![]() Por cierto, esa sentencia que has puesto creo que no es correcta. La parte 'ORDER BY' admite el nombre de una columna y/o uno de los códigos ASC o DESC. Creo que lo de jugador=loquesea no funciona. Si lo que quieres es crear una sentencia que te proporcione la lista de jugadores ordenados de forma ascendente por una columna concreta la cosa sería así... Código:
SELECT jugador FROM goleadores ORDER BY '#PARAMETRO_1#' ASC http://www.1keydata.com/es/sql/sql-order-by.php https://www.w3schools.com/sql/sql_orderby.asp El PHP y el XML deben ir juntos en la raíz del alojamiento web que estés usando de forma que puedas escribir una URL como las que puse antes de ejemplo. Y para enviar esas URL al WebService tienes que usar las acciones 'HTTP Get' o 'HTTP Post' de Tasker. ¿Te referías a eso?
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
| Los siguientes 2 usuarios han agradecido a WillyWeb su comentario: | ||
|
#30
|
||||
|
||||
|
|
#31
|
||||
|
||||
|
Nada, no hay forma.
En la web hay una pestaña relativa a la tabla que pone "crear código php", pero no puedo hacer modificaciones. Otra opción que he probado es a insertar archivos. Hay una pestaña relativa a la DB que pone "Importar" Como "importar" requiere un archivo, y no tengo ni idea de que tipo de archivo es... He creado un archivo con el documento de texto de windows y le he llamado CódigoXML.xml y dentro de ese archivo he copiado el código xml y lo mismo he hecho con el código php, en un archivo llamado códigoPHP.php En las opciones que figuran en la página de Importar, aparece una pestaña donde permite que tipo de formato tiene el archivo, y entre otros puede elegir XML. Elijo XML importo el archivo y parece que lo hace de forma correcta porque no salta ningún error. A la hora de importar el archivo .php (Que posiblemente me haya inventado yo hoy esa extensión de archivos), no me da ninguna opción que se asemeje a la extensión php (si es que existe..) Veo CSV, SQL, ESRI y algunos más. Como ninguno se asemeja lo dejo en SQL, importo mi archivo .php y me salen 40 errores de sintaxis. Como no tengo ni **** idea de como corregirlos, le doy a ignorar todos y continuo. Luego, no se porque creo que hay posibilidades de que funcione, después de esos 40 errores, y desde Tasker ejecuto una acción HTTP Get, y en el apartado servidor puerto pongo: http://servidor/webservice.php?opc=l...dores&fmt=json No funciona. Doy por hecho de que donde pone servidor, tengo que poner sql11.freesqldatabase.com (host base de datos) y pongo esto: http://sql11.freesqldatabase.com/web...dores&fmt=json. No funciona. Continuo haciendo cambios, y donde pone "opc", yo pongo "opcion" porque cuando tu me has aconsejado eso: http://servidor/webservice.php?opcio...es&format=json. No funciona. Continuaré haciendo pruebas, pero después de ver que la importación del archivo .php ha dado 40 errores, tengo pocas esperanzas. |
|
#32
|
||||
|
||||
|
Más bien suena a una opción de phpMyAdmin que añade código PHP a las sentencias SQL que se van generando automáticamente a medida que manipulas la base de datos. Si se trata de eso no te vale. En ese alojamiento web tienes que tener algo que te permita gestionar archivos/carpetas (el típico explorador). Eso es lo que tienes que usar para copiar el archivo PHP y el XML en la carpeta raíz del alojamiento. Otra forma en la que también se suele hacer es mediante un acceso FTP. Demasiado tarde. En contador ya está en marcha.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
|
#33
|
||||
|
||||
![]() ¿Al registrarte en ese sitio cuál de estas opción has elegido? Free MySQL database Free Website Hosting for 30 days Si es la primera no te vale, y si es la segunda sólo te vale durante 30 días.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
| Gracias de parte de: | ||
|
#34
|
||||
|
||||
|
Que faena, elegí la primera opción.
Bueno, puedo registrarme con la prueba de 30 días, y si funciona, me planteo pagar por un servidor durante un tiempo, o buscar otra página. Si me hago el registro de la prueba de 30 días. Hago todo como iba? Con el código en un archivo de texto y poniendo la extensión .XML y .PHP? |
|
#35
|
||||
|
||||
![]() Tienes infinidad de alojamientos web gratuitos con PHP y MySQL, es cosa de buscar un poco... http://es.lmgtfy.com/?q=alojamiento+...on+php+y+mysql PHP ... webservice.php XML ... opciones.xml Por cierto, usa sólo minúsculas. El XML está referenciado en el código y si le pones otro nombre no funcionará. Al PHP si que le puedes poner el nombre que quieras. Simplemente lo tienes que tener en cuenta para ponerlo igual en la URL que le mandas al WebService.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
| Los siguientes 2 usuarios han agradecido a WillyWeb su comentario: | ||
|
#36
|
||||
|
||||
|
Bueno, he probado a registrarme en otra web, concretamente en http://www.atspace.com
En la página figuran los siguientes datos relativos a la cuenta; Hosting Estadísticas de la cuenta ID de cliente 2454802 Actualización / renovación gratuita de Hosting Caducidad de cuenta Nunca Servicios Total disponible Usado Espacio del disco 1000 MB 0 B Tráfico Ilimitado 0 B Dominios 1 0 Subdominios 3 0 DBs de MySQL 1 0 DB de PostgreSQL 0 0 Correos electrónicos 1 0 Actualizar Estadísticas Nota : ¡El espacio en disco y las estadísticas de tráfico se actualizan cada hora! Características de la cuenta de alojamiento Servicios Estado Acción Límite de tamaño de archivo 15 MB retirar SMTP EN Versión de PHP 5.6.31 cambio Información de PHP ver que es eso Versión de MySQL 5,7 Servidores de nombres (NS) ver que es eso Rutas del sistema ver Opciones de Firewall ver Ingresar a la configuración de Hosting Realmente no se distinguir si en este alojamiento web permite hacer lo que estoy intentando. Supongo que en los datos que he puesto, debe de indicarlo. He creado una nueva DB, con el mismo nombre que la anterior (goleadores) y la misma estructura; goles (INTYINT) jugador (VARCHAR 14) usuario (VARCHAR 8) He hecho las correspondientes modificaciones en los archivos "opciones.xml" y "webservice.php", incluido la sentencia SQL en la que habías detectado el error. La he sustituido por la sentencia que has indicado a continuación. SELECT jugador FROM goleadores ORDER BY '#PARAMETRO_1#' ASC Lo siguiente que he hecho, ha sido volver a importar ambos archivos. El xml ha dado 4 errores y el php 12. Lo he vuelto a importar igual, dado que no veo nada en esa página que se asemeje a un explorador de archivos. Por último he ejecutado una acción Tasker HTTP Get, indicando en el campo SERVIDOR:PUERTO http://servidor/webservice.php?opcio...es&format=json Al ejecutar la acción, da "error socked". A diferencia del error que daba cuando lo hacía con la otra web de alojamiento, este salta inmediatamente. En la otra web, la acción tardaba unos segundos antes de dar el error, e indicaba "error entrada/salida". Creo que el error se debe a que no se copian los archivos a la raiz de alojamiento de la DB, pero tampoco es que lo tenga muy claro. Última edición por Rsc Día 24/09/17 a las 00:35:06. |
| Gracias de parte de: | ||
|
#37
|
||||
|
||||
|
Bueno, he probado a registrarme en otra web, concretamente en http://www.atspace.com
![]() ![]() De primeras ese alojamiento parece que vale. Ahora lo tenemos que configurar para hacer lo que necesitas. Intentaré guiarte poco a poco. ![]() 1. Crear la base de datos. Esto ya lo tienes así que no te digo nada más. Por cierto, esos errores al "importar" el PHP y el XML son normales por la sencilla razón de que no es la forma correcta de "subir" esos archivos. Lo que la DB espera al importar es código SQL y le estás dando otra cosa, ¿no?. 2. Crear un subdominio. Panel de control > Herramientas de alojamiento > Gestor de dominios > Crear un Subdominio Gratuito Selecciona uno de los dominios base que te ofrecen y escribe en la casilla una palabra que te guste. La idea es componer una dirección web de esta forma... http://miweb.atspace.cc Esa será la dirección base (el servidor) de la URL del WebService. 3. Subir el PHP y el XML. Panel de control > Herramientas de alojamiento > Gestor de archivos Aparecerá un gestor de archivos/carpetas básico en el que tendrás que seleccionar la carpeta que coincida con el subdominio que has creado antes. Esa carpeta es la raíz de tu WebService y es justo en ese sitio en el que tienes que "subir" los archivos PHP y XML. 4. Prueba básica Si has llegado hasta aquí al poner la dirección de tu servidor en un navegador web deberías ver una página proporcionada por el alojamiento, y al poner la URL del WebService... http://miweb.atspace.cc/webservice.php ...deberías ver un mensaje de error (Opcion incorrecta). Eso te indicará que el código del PHP se está ejecutando y que ha sido capaz de cargar el XML. Te espero aquí.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) |
| Gracias de parte de: | ||
|
#38
|
||||
|
||||
|
Deberes terminados.
He creado el subdominio. pruminio.atspace.eu He subido los archivos a la carpeta del subdominio. opciones.xml 195 B Archivo XML Sep 20 10:08 -rwxr-xr-x webservice.php 2.94 KB Archivo PHP Sep 20 10:08 -rwxr-xr-x Cuando en el navegador pongo esta dirección http://pruminio.atspace.eu Me manda una página que pone bienvenido a tu nueva página. Cuando en el navegador pongo http://pruminio.atspace.eu/webservice.php me sale justo el mensaje que has comentado "opción incorrecta" Cuando ejecuto la acción HTTP Get de Tasker, indicando: http://servidor/webservice.php?opcio...es&format=json El valor de la variable %HTTPR es "200" Parece que vamos avanzando... |
|
#39
|
||||
|
||||
|
Cuando en el navegador pongo http://pruminio.atspace.eu/webservice.php me sale justo el mensaje que has comentado "opción incorrecta"
![]() ![]() ![]() Supongo que la prueba la has hecho bien pero la URL correcta no es la que has puesto. Es esta otra... Código:
http:/pruminio.atspace.eu/webservice.php?opcion=listajugadores&format=json ![]() ¿Has puesto los datos correctos en la línea 56? (https://pastebin.com/qERR9wYq) Si están bien puestos el problema será de esa función obsoleta y tocará estudiar un poco de PHP para buscar una alternativa. ![]() Por cierto, yo seguiría haciendo las pruebas con un navegador normal y corriente (mejor en un PC) para poder ver bien los resultados.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]
Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino) Última edición por WillyWeb Día 20/09/17 a las 13:36:30. |
|
|
|
#40
|
||||
|
||||
|
Esta son las lines 56 y 57 y aquí estaba el error; $db = mysql_connect('pruminio.atspace.eu','2454802_promu nio','5LI7EZXgQD') or die('No se pudo conectar con la base de datos'); mysql_select_db('2454802_promunio',$db) or die('No se pudo seleccionar la base de datos.');[/b] Donde hay que indicar el 'servidor_base_datos' yo puse "pruminio.atspace.eu" y lo correcto es; 'fdb17.atspace.me' Que es lo que viene reflejado en los datos de la DB alojadas en la cuenta, como "Host de BD" Ahora cuando escribo la dirección en el navegador del PC obtengo el contenido la sentencia de SQL que he configurado en el archivo opciones.xml, pero me sigue indicando que la extensión mysql está obsoleta y será eliminada en el futuro. Deprecated : mysql_connect (): La extensión mysql está obsoleta y se eliminará en el futuro: use mysqli o PDO en lugar de /srv/disk12/2454802/www/pruminio.atspace.eu/webservice.php en la línea 56 Advertencia : No se puede modificar información de cabecera - encabezados ya enviados por (salida iniciada en /srv/disk12/2454802/www/pruminio.atspace.eu/webservice.php:56) en /srv/disk12/2454802/www/pruminio.atspace.eu/webservice. php en la línea 81 ["jugador": "MESSI"}, {"jugador": "LUIS SUAREZ"}, {"jugador": "MESSI"}, {"jugador": "LUIS SUAREZ"}, ":" MORATA "}, {" jugador ":" RONALDO "}, {" jugador ":" MORATA "}, {" jugador ":"RONALDO"}] No se si darte las gracias o darme de baja de la página por el tema de la factura que me querías pasar. |
| Gracias de parte de: | ||
![]() |
Estás aquí
|
||||||
|
||||||