Esses dias me deparei com a necessidade de produzir um formul\u00e1rio cujos campos n\u00e3o s\u00e3o produto de uma tabela \u00fanica mas sim de um\u00a0left join.\u00a0<\/strong><\/em><\/p>\n Para uma tabela \u00fanica, o comando \u00e9 o seguinte<\/p>\n Ai modifiquei o ydbcreateform para que funcionasse com um comando sql. Neste caso a sintaxe fica assim:<\/p>\n Para salvar os dados, o programador precisa modificar o c\u00f3digo produzido. Mas o restante, j\u00e1 est\u00e1 pronto.<\/p>\n Ele produz os mesmos arquivos: clinicas.php, clinicas.json, clinicas.form f_clinicas.html e js\/clinicas.js<\/p>\n O programador n\u00e3o precisa usar todos eles.<\/p>\n Por exemplo, f_clinicas.html e clinicas.json s\u00e3o mutuamente excludentes. Ao passo que clinicas.json funciona junto com js\/clinicas.js e o interface.js (que ainda n\u00e3o foi incluso na distribui\u00e7\u00e3o).<\/p>\n Assim, gerando uma boa tabela no seu banco (ou uma view, por exemplo) o CRUD est\u00e1 praticamente pronto.<\/p>\n","protected":false},"excerpt":{"rendered":" Esses dias me deparei com a necessidade de produzir um formul\u00e1rio cujos campos n\u00e3o s\u00e3o produto de uma tabela \u00fanica mas sim de um\u00a0left join.\u00a0 Para uma tabela \u00fanica, o comando \u00e9 o seguinte ~\/www\/YeAPF\/tools\/ydbcreateform –db 192.168.56.250:nossoConsultorio_teste –user esteban –pass senha –type mysqli –table clinicas –name “clinicas” Ai modifiquei o ydbcreateform para que funcionasse com […]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false},"categories":[49,8],"tags":[],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5O6UV-6k","jetpack-related-posts":[{"id":5,"url":"http:\/\/www.yeapf.com\/wp\/?p=5","url_meta":{"origin":392,"position":0},"title":"Migrando bancos de dados com ydbmigrate","date":"janeiro 10, 2014","format":false,"excerpt":"Desenvolver um aplicativo implica em ter um bom banco de dados, mas responder rapidamente a uma migra\u00e7\u00e3o estrutural \u00e9 mais um pesadelo do que uma noite bem dormida. Dentre as ferramentas que o YeAPF disp\u00f5e se encontra o ydbmigrate. Esta ferramenta nos permite exportar e importar dados de varias fontes\u2026","rel":"","context":"Em \"firebird\"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":254,"url":"http:\/\/www.yeapf.com\/wp\/?p=254","url_meta":{"origin":392,"position":1},"title":"Login para aplicativos YeAPF","date":"janeiro 16, 2016","format":false,"excerpt":"Uma das coisas necess\u00e1rias no desenvolvimento de um aplicativo \u00e9 uma telinha de login. \u00c9 uma bem sucedida entrada a que gera o par\u00e2metro contextual\u00a0u que \u00e9 essencial para a seguran\u00e7a do trip\u00e9 s-u-a do YeAPF. Voc\u00ea precisar\u00e1 uma tela de login que chamaremos neste exemplo de f_login.html, umas modifica\u00e7\u00f5es\u2026","rel":"","context":"Em "Desenvolvimento"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":380,"url":"http:\/\/www.yeapf.com\/wp\/?p=380","url_meta":{"origin":392,"position":2},"title":"Criando e modificando o yeapf.db.ini usando a linha de comando","date":"abril 11, 2018","format":false,"excerpt":"Esses dias tive que migrar um projeto de uma pasta para outra e - pela configura\u00e7\u00e3o do .gitignore - a defini\u00e7\u00e3o da conex\u00e3o com o banco de dados n\u00e3o veio. Esse \u00e9 exatamente o jeito em que trabalhamos porque nos permite mantermos nossas bases de testes separadas por individuo ou\u2026","rel":"","context":"Em "Yet Another PHP Framework"","img":{"alt_text":"","src":"https:\/\/i2.wp.com\/www.yeapf.com\/wp\/wp-content\/uploads\/2018\/04\/Screenshot-esteban@programacao01-ysetdbconn-php.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":455,"url":"http:\/\/www.yeapf.com\/wp\/?p=455","url_meta":{"origin":392,"position":3},"title":"Como instalar YeAPF?","date":"agosto 3, 2018","format":false,"excerpt":"Voc\u00ea n\u00e3o precisa instalar YeAPF. O que sim \u00e9 bom ter instalado s\u00e3o as ferramentas dele. Mas antes disso, \u00e9 bom deixar claro como funciona ele sem instalar. A todos os efeitos, vamos supor que voc\u00ea fez download da \u00faltima vers\u00e3o do YeAPF e o colocou na pasta ~\/Downloads\/YeAPF\/ e\u2026","rel":"","context":"Em "Yet Another PHP Framework"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":19,"url":"http:\/\/www.yeapf.com\/wp\/?p=19","url_meta":{"origin":392,"position":4},"title":"Preenchendo listas de op\u00e7\u00f5es e tabelas","date":"fevereiro 20, 2014","format":false,"excerpt":"Uma das atividades corriqueiras na programa\u00e7\u00e3o web e mobile \u00e9 o preenchimento de lista de op\u00e7\u00f5es e tabelas para o usu\u00e1rio poder escolher um item baseado numa pesquisa anterior. A partir da vers\u00e3o 0.8.25 YeAPF disponibiliza o ycomm-dom.js que estende as capacidades do ycomm ao poder aplicar o resultado de\u2026","rel":"","context":"Post similar","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":373,"url":"http:\/\/www.yeapf.com\/wp\/?p=373","url_meta":{"origin":392,"position":5},"title":"O uso do db_queryAndFillArray() em requisi\u00e7\u00f5es Ajax e RESTFul","date":"mar\u00e7o 3, 2018","format":false,"excerpt":"Em YeAPF a forma mais simples de responder a uma requisi\u00e7\u00e3o em que o resultado vem de apenas uma consulta SQL (simples ou combinada) \u00e9 a seguinte: function qTeste($a) { \u00a0 global $u, $xq_start; $useColNames = true; $xq_count=999; $ret=''; \/\/ publish query variables as local variables extract(xq_extractValuesFromQuery()); $xq_start=isset($xq_start)?intval($xq_start):0; switch($a) {\u2026","rel":"","context":"Em "Yet Another PHP Framework"","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/392"}],"collection":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=392"}],"version-history":[{"count":1,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/392\/revisions"}],"predecessor-version":[{"id":393,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/392\/revisions\/393"}],"wp:attachment":[{"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=392"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=392"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.yeapf.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}~\/www\/YeAPF\/tools\/ydbcreateform --db 192.168.56.250:nossoConsultorio_teste --user esteban --pass senha --type mysqli --table clinicas --name \"clinicas\"<\/pre>\n
~\/www\/YeAPF\/tools\/ydbcreateform --db 192.168.56.250:nossoConsultorio_teste --user esteban --pass senha --type mysqli --sql \"select c.id, c.email, c.data_alteracao, c.status_clinica, c.pessoa_juridica, c.CNES,   c.DDD, c.telefone, c.DDD_cel, c.telefone_cel,   pj.CNPJ,   pj.nome_fantasia, pj.razao_social,   pj.tipo_logradouro, pj.endereco, pj.numero, pj.complemento,   pj.cidade, pj.UF, pj.CNAE from clinicas c left join pessoas_juridicas pj on pj.id = c.pessoa_juridica\" --name \"clinicas\"<\/pre>\n