Mostrar datos de una Tabla en Android Studio con SQLit

tengo esta tabla Producto con estos atributos, pero el atributo Categoria está relacionado a otra tabla(para registrar un producto se debe registrar el id de la categoría al que pertenece)

    private int idproducto;     private String desproducto;     private double preproducto;     private int canproducto;     private Categorias categorias; 

El problema es que para listar no se como hacerlo para mostrar el id de la categoría o el nombre… El cursor solo me acepta getInt, getString mas no para obtener el dato de otra tabla relacionada, ayuden; mi método para listar es el siguiente:

public static ArrayList<String> listarP (ConexionSQLiteHelper cnn) throws Exception     {         ArrayList<Productos> lst=new ArrayList<Productos>();         ArrayList<String> listaInformacion=new ArrayList<String>();         Categorias categorias = new Categorias();         Productos opr = new Productos();         String sql="select * from productos";         Cursor cursor=cnn.ejecutarQuery(sql);         try{             if (cursor.moveToFirst())             {                 do {                     lst.add(new Productos(cursor.getInt(0), cursor.getString(1), cursor.getDouble(2),cursor.getInt(3),cursor.get(??)));                 }while (cursor.moveToNext());             }              for(int i=0;i<lst.size();i++)             {                 //listaInformacion.add(lst.get(i).getIdcategoria() + " - " + lst.get(i).getDescategoria() );              }         }catch(Exception ex){             throw ex;         }         return listaInformacion;     } 

En la parte que dice: cursor.get(??) no se que poner para obtener el id o el nombre de la categoría.

mostrar formulario php

 buenos días amigos tengo un problema con mi código php que al mostrar la imagen insertada en mi casa de comentarios queda asi como rota       parte del html:         <!DOCTYPE html>         <html lang="en">         <head>              <title>Mostrar</title>         </head>         <body>         <center>         <table> //mostrando los datos en la parte de la cabecera`         <thead>         <tr> //nombres de las propiedades a mostrar`             <th>Imagen</th>             <th>fecha</th>             <th>hora</th>             <th>nombre</th>             <th>comentario</th>             </tr>             </thead>             <tbody>             <?php              include("conexion.php");          aqui es donde hago un seleccion completa de lo que hay en mi base de datos para mostrarlo en pantalla              $  query = "SELECT * FROM comentarios"; 

//ejecución de un resultado que es igual a una conexión que apunta al objeto query $ resultado= $ conexion->query($ query); while($ row= $ resultado->fetch_assoc()){

            ?>              <tr> 

// aquí es donde hago la llamada al formato de la imagen con una altura de no mas de 50px “> parte aun por hacer: Modificar Eliminar

            </tr>             <?php                }               ?>              </tbody>             </table>              </center>              </body>             </html> 

Me gustaría saber cuales el problema y la solución. Gracias de antemano.

Heroku: Error al mostrar imagen con N de.js

Tengo un sistema de upload de imágenes con firebase storage, las cuales muestro en una galería y cada imagen tiene un botón que redirige a la imagen original pero quiero enmascarar la imagen con una url virtual echa con Node.js. Pero al intentar acceder a la dirección la que enmascara la imagen, Heroku me manda a la pagina de error predeterminada de Heroku https://www.herokucdn.com/error-pages/application-error.html

Este es mi código:

app.get('/img/:img', (req, res) => {     const img = req.params.img     const get = await fetch('https://hexagon-io.appspot.com.storage.googleapis.com/assets/$  {img}')     const size = await get.headers.get('Content-Length')     const format = await get.headers.get('Content-Type')     const buffer = await get.arrayBuffer()     res.header('Content-Type', format)     res.header('Content-Length', size)     res.render('pages/db', {         results: new Blob([new Uint8Array(buffer)], {             type: format         })     }) }) 

mostrar elementos en Django

Mi aplicación en Django me muestra los datos de la base de datos en una fila y en una columna por dato. Ahora bien, es posible mostrar varios datos por fila? Por ejemplo dos o tres datos (dos o tres columnas en bootstrap) de la base por fila.

Les paso el código en cuestión.

´´´python vista: views.py from django.shortcuts import render from .models import Image  # Create your views here. def images(request):     images = Image.objects.all()     return render(request, 'image/images.html', {'images':images})  template: vista.html  {% block content %}    {% for image in images %}             <div class="row project">                    <div class="col-3 col-lg-3 col-md-3 offset-lg-1">                     <img class="img-fluid" src="{{image.image.url}}" alt="">                 </div>                 <!-- <div class="col-lg-7 col-md-8">                     <h2 class="section-heading title">{{image.title}}</h2>                        <p>{{image.description}}</p>                 </div>             </div>     {% endfor %}  {% endblock %} ´´´  

Perdón si la explicación es muy rebuscada.

Tengo problemas para mostrar el formato de etiqueta que necesito

necesito mostrar esto en mi gráfico de barras y no pude lograr configurar el complemento de charts js datalabel-plugin, tengo un api de donde me llegan los datos, el ultimo arreglo de datos “porcentaje” debe mostrarse cada uno de esos valores cada 30 días del total de 360 días que tiene el gráfico. Les agradecería muchísimo su ayuda. introducir la descripción de la imagen aquí

Código:

var XValues = [   0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,   45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,   66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,   87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,   106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,   122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,   138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,   154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,   170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,   186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,   202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,   218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,   234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,   250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,   266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,   282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,   298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,   314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,   330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,   346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360 ];  var YValues = [   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 50000.0, 0.0,   0.0, 0.0, 0.0, 1220779.6, 130000.0, 296000.0, 1162027.14, 0.0, 0.0, 2768482.84,   373769.69, 3266877.14, 954752.3, 0.0, 2179743.89, 1119815.91, 0.0, 1546573.58,   2295188.35, 5766416.61, 2400059.89, 1362544.32, 2065125.0, 0.0, 2614227.3, 4312441.03,   1567752.45, 396385.85, 784367.19, 1251550.85, 649401.57, 1960851.15, 2418563.82,   5763793.94, 770000.0, 200000.0, 1000000.0, 489582.34, 8701720.72, 4233160.43, 0.0,   800000.0, 3275422.23, 0.0, 0.0, 10834000.0, 9480157.63, 5458915.89, 1248660.23,   3076394.38, 0.0, 1248800.0, 1300000.0, 3239404.21, 4721667.16, 6325239.51, 723000.0,   120500.0, 0.0, 2700856.83, 300000.0, 6085455.79, 12365548.65, 250000.0, 2275793.87,   816111.3, 2312688.39, 1193043.0, 1684344.47, 650000.0, 2970000.0, 0.0, 0.0, 814123.8,   3000000.0, 1482929.54, 1597000.0, 2145474.31, 883611.12, 0.0, 1344585.29, 2223230.0,   2906253.0, 1478849.38, 1100001.0, 0.0, 500347.76, 0.0, 0.0, 1002860.0, 1378000.0, 2300000.0,   0.0, 672000.0, 12794114.88, 0.0, 1533827.5, 320000.0, 2214936.52, 0.0, 0.0, 2183429.87, 1200000.0,   2215000.0, 800000.0, 959169.9, 1000000.0, 0.0, 0.0, 864901.01, 650000.0, 650000.0, 20000.0,   300000.0, 239289.19, 0.0, 200000.0, 2963732.7, 0.0, 20000.0, 0.0, 0.0, 611631.66, 300000.0,   0.0, 250000.0, 250000.0, 0.0, 0.0, 0.0, 0.0, 622281.05, 0.0, 20000.0, 0.0, 0.0, 0.0, 0.0,   758217.94, 0.0, 0.0, 0.0, 0.0, 0.0, 2250000.0, 337580.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,   150000.0, 0.0, 0.0, 0.0, 0.0, 855543.06, 36700.0, 0.0, 370000.0, 0.0, 0.0, 0.0, 200000.0,   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 130000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,   0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ];  var porcentajes = [30, 8, 10, 6, 3];  var barChart = new Chart(document.getElementById("sub"), {   type: 'bar',   data: {     labels: XValues,     datasets: [{       label: "Cheques",       data: YValues,       backgroundColor: "rgba(100,100,200, .4)",       borderColor: "rgba(100,100,200, 1)",       borderWidth: 1.5     }]   },   options: {     responsive: true,     legend: {       display: false,     },     tooltips: {       callbacks: {         label: function(t, d) {           return d.datasets[t.datasetIndex].label         },         afterLabel: function(t, d) {           return [t.xLabel + " Días", "$   " + t.yLabel.toLocaleString('es-AR')];         },         title: function(tooltipItem, data) {           return;         },       }     },     scales: {       xAxes: [{          barThickness: 3,         ticks: {           stepSize: 5,            autoSkip: true,           maxTicksLimit: 12         },          scaleLabel: {           display: true,           fontSize: 8,           labelString: 'Vencimiento (dias)'         },        }],       yAxes: [{         display: true,         scaleLabel: {           display: true,           fontSize: 8,           labelString: 'Importe ($  )'         },         ticks: {           beginAtZero: true,           callback: function(label, index, labels) {             if (label == 0) {               return "   0";             }             if (label >= 1 && label <= 9) {               return "     " + label;             }             if (label >= 10 && label <= 99) {               return "   " + label;             }             if (label >= 100 && label <= 999) {               return " " + label;             }             if (label >= 1000 && label <= 9999) {               return "   " + (label + "").slice(0, 1) + "K";             }             if (label >= 10000 && label <= 99999) {               return " " + (label + "").slice(0, 2) + "K";             }             if (label >= 100000 && label <= 999999) {               return "0." + (label + "").slice(0, 1) + "M";             }             if (label >= 1000000 && label <= 9999999) {               return "   " + (label + "").slice(0, 1) + "M";             }             if (label >= 10000000 && label <= 99999999) {               return " " + (label + "").slice(0, 2) + "M";             }             if (label >= 100000000 && label <= 999999999) {               return (label + "").slice(0, 3) + "M";             }             if (label >= 1000000000 && label <= 9999999999) {               return " " + (label + "").slice(0, 1) + "mM";             }             if (label >= 10000000000 && label <= 99999999999) {               return (label + "").slice(0, 2) + "mM";             }           }         },        }]     },      Plugins: {       datalabels: {         anchor: 'end',         aling: 'end',        }     }    } });
<!DOCTYPE html>  <html>     <meta http-equiv="content-type" content="text/html; charset=utf-8" />   <!--Boostrap Styles-->   <!-- <link href="css/style.css" rel="stylesheet" />         <link href="css/myCustomStyle.css" rel="stylesheet" /> -->    <body>      <div class="row">       <div class="col-md-12">         <canvas id="sub" height="100"></canvas> <!-- Bar chart-->       </div>     </div>      <!-- <script src="lib/moment/moment-with-locales.min.js"></script> -->     <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.bundle.min.js"></script>     <script src="https://cdn.jsdelivr.net/gh/emn178/chartjs-plugin-labels/src/chartjs-plugin-labels.js"></script>       <!-- <script src="lib/jquery/dist/jquery.min.js"></script>     -->     <!-- <script src="lib/bootstrap/dist/js/bootstrap.min.js"></script>   -->    </body>  </html>

Fiddle original: https://jsfiddle.net/xqp2s567

¡Por què me sigue apareciendo lo de “su navegador no es capaz de mostrar los recaptchas”?

Ya me registrè en Google, para que supuestamente me dejaran trabajar en Kolotibablo sin obstàculos, y resulta que me siguen bloqueando loS recaptachas con eso del navegador… Vamos a ser serios, si el registro en Google no vale para nada, entonces para què lo piden. Si es asì, ¿Què debo hacer para que me permitan trabajar sin ese aviso?

Mostrar PopUp en Leaflet con plugin Leaflet.MarkerCluster.LayerSupport

Estoy utilizando Leaflet para mostrar los datos de un GeoJson, he agregado el plugin MarkerCluster, hasta aquí todo bien, parte del código es el siguiente

// Llamada ajax para mostrar los datos del geojson en el mapa var myLoader = document.getElementById('myLoaderContainer'); var xhr = new XMLHttpRequest();  xhr.open('GET', '../data/map/a.geojson'); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.responseType = 'json'; xhr.onload = function() {   if (xhr.status == 200){     var geojsonAjax = L.geoJSON(xhr.response, {       onEachFeature:dataPopup,       // Añade el icon personalizado       pointToLayer: function (feature, latlng) {         return L.marker(latlng, {icon: icon });       }     });     // Añade markerCluster.     markers.addLayer(geojsonAjax);     mymap.addLayer(markers);  }; xhr.send(); 

El siguiente paso es agrupar los cluster en grupos, para ello estoy utilizando el plugin Leaflet.MarkerCluster.LayerSupport, https://github.com/ghybs/Leaflet.MarkerCluster.LayerSupport

Y es donde viene los problemas, he intentado lo siguiente, me muestra los grupos, y los marker en el mapa con markerCluster, pero no visualizo la información dentro del popUp. El popUp esta vacio. Antes de intentar agrupar los marker, si tengo información en el popUp.

/* **************************************** Carga la información del Geojson, y define MarkerCluster **************************************** */ // Variables para crear los layerGroup var mcgLayerSupportGroup = L.markerClusterGroup.layerSupport(),     group1 = L.layerGroup(),     group2 = L.layerGroup(),     group3 = L.layerGroup(),     control = L.control.layers(null, null, { collapsed: false }),     marker; // Agraga los grupos al mapa mcgLayerSupportGroup.addTo(mymap);  // Llamada ajax para mostrar los datos del geojson en el mapa var myLoader = document.getElementById('myLoaderContainer'); var xhr = new XMLHttpRequest();  xhr.open('GET', '../data/map/a.geojson'); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.responseType = 'json'; xhr.onload = function() {   if (xhr.status == 200){     var geojsonAjax = L.geoJSON(xhr.response, {       onEachFeature:dataPopup,       // Añade el icon personalizado       pointToLayer: function (feature, latlng) {         marker = L.marker(latlng, {icon:icon})         if (feature.properties.provincia == 'a') {           marker.addTo(group1)         }else if(feature.properties.provincia == 'b'){           marker.addTo(group3)         }         else {           marker.addTo(group2)         }       }     });  mcgLayerSupportGroup.checkIn([group1, group2, group3]);  control.addBaseLayer(group1, 'first quarter'); control.addBaseLayer(group2, 'Second quarter'); control.addBaseLayer(group3, 'Third quarter');  control.addTo(mymap);  group1.addTo(mymap); group2.addTo(mymap); group3.addTo(mymap); 

¿Como mostrar mis reservas en un calendario?

estoy haciendo un proyecto escolar sobre alquiler de canchas e hice un formulario con un selector de fechas para los alquileres que se envían a (reservas) en mi base de datos. lo que quiero preguntar es como puedo hacer para que esas reservas se muestren en mi calendario (full calendar). En la tabla reservas están los datos id, hora y fecha, quisiera que se muestre un color o un dato que figure en mi calendario. Muchas gracias por la atención y espero su ayuda .

Problema al mostrar resultado con console.log

Estoy usando JS para validar un formulario, quería hacer una prueba con una función para mostrar los datos que se encuentran en los input mediante la consola en el navegador, pero no me está mostrando nada.

Mi código:

  • vista:
<div class="row">     <div class="col">         <div class="row my-5 d-flex justify-content-start">             <div class="col-12 ">                 <h2>REGISTRO DE USUARIO</h2>             </div>         </div>         <div class="row d-flex justify-content-center">             <div class="col align-items-center">                 <form method="post" onsubmit="return validarRegistro()">                     <div class="col-12 form-group" >                             <input type="text" placeholder="Usuario" name="usuarioRegistro"  id="usuarioRegistro" required class="form-control">                     </div>                     <div class="col-12 form-group">                         <input type="password" placeholder="Contraseña" name="passwordRegistro" id="passwordRegistro" required class="form-control" >                     </div>                     <div class="col-12 form-group">                         <input type="email" placeholder="Email" name="emailRegistro"  id="emailRegistro" required class="form-control">                     </div>                     <div class="col-12 form-group">                         <input type="submit" id="submitRegistro" value="Enviar" class="btn btn-block btn-danger form-control">                     </div>                 </form>             </div>         </div>     </div> </div> 

El código de JS que tengo:

    function validarRegistro(){          var usuario= document.querySelector("#usuarioRegistro").value;         console.log('usuario',usuario);         var password= document.querySelector("#passwordRegistro").value;         console.log('password',password);         var email= document.querySelector("#emailRegistro").value;         console.log('email',email);          return true;      } 

Conecto el código js a mi plantilla HTLM en el <body>:

<script src="views/js/validarRegistro.js"></script>  

No sé que error tendré, pero tengo rato estancado allí, si alguien sabe cómo puedo solucionar el problema sería de mucha ayuda.

mostrar datos de una base de datos en una lista y java

Cordial saludo alguien que me pueda colaborar,tengo dos tablas en sql server y una tabla depende de la otra como hago para mostrar en lista desplegable de html los datos que tiene esa base de datos , ejemplo que muestre la lista de departamentos que ya estan registrados en la base de datos y poder ingresar datos como un municipio y este se almacene