¿Porque me regresa el error de que no es la contraseña correcta si es la misma que la de la base de datos?

if($  query->num_rows>0){     //validar contraseña     $  datos=$  query->fetch_assoc();     if(password_verify($  acceso,$  datos['acceso'])){         $  _SESSION['usuario']=array('Id'=>$  datos['Id'],'usuario'=>$  datos['usuario']);     }else{         $  _SESSION['alert']=array('warning','Esa no es la cotraseña correcta');     } }else{     $  _SESSION['alert']=array('warning','El nombre de usuario no existe'); } 

por que mi método recursivo no, sigue iterando después de llamarse a si misma?

tengo este código, que genera combinaciones de booleanos dentro de un arraylist llamado solución como si se tratara de un arbol binario pero sin nodos. el problema es que al llamar la función start() solo entra el primero y no ambos,que puedo hacer?

import java.util.List; import java.util.ArrayList;  public class Backtacking{     int nMatriz;     Comparador comp;      public Backtacking(int nMatriz ,Comparador comp){         this.nMatriz=nMatriz;         this.comp=comp; }  public void start(int etapa, boolean combinacion, ArrayList<Boolean> solucion){     solucion.add(etapa,combinacion);     if(comp.esFactible(solucion)){         if(comp.estanTodos(solucion)){                          comp.comprobar(solucion);                                        }else{             start(etapa+1,false,solucion);             start(etapa+1,true,solucion);         }     } } } 

comp es una instancia que tiene los métodos donde realizo las comprobaciones y la resolución de todos los vectores resultantes nada relevante con respecto al problema que me lleva aquí sobre la recursion. dentro del Main lo llamo de esta forma;

 public class Main {      public static void main(String[] args) {          Comparador comp = new Comparador();         Backtacking back = new Backtacking(nMatriz, comp);         back.start(0,false,new ArrayList<Boolean>());         back.start(0,true,new ArrayList<Boolean>());      } } 

gran parte del código lo omito para evitar que este post sea tan grande por ejemplo como obtengo nMatriz entre otras variables

aquí un ejemplo de la salida de “solucion” que es un ArrayList; sale duplicada pero es por que en el Main llamo 2 veces el mismo método.

ejemplo de salida

en cada iterracion se logra ver como agrega un nuevo boolean a la lista, pero no se genera el arbol y no esta entrando en la segunda recursion de start() mi pregunta es, es posible hacer recursion doble? y Como la puedo implementar en mi código?

Angular 8: duplica datos cuando vuelvo a la misma ruta

tengo un problema con angular que no logro comprender. tengo una aplicacion hecho con angular 8 y tengo un componente en localhost:4200/inicio y tengo otro componente en localhost:4200/tabla resulta que cuando navego entre los dos componentes usando

<a mat-list-item routerLink="/inicio"></a> <a mat-list-item routerLink="/tabla"></a> 

me duplica la información.

muestro cantidad de registro que realmente tiene la tabla introducir la descripción de la imagen aquí

cuando navego de nuevo a /inicio y despues a /tabla (sin recargar el navegador) introducir la descripción de la imagen aquí

al recargar el navegador me vuelve a la cantidad de registros originales (13), lo único que supongo que pasa es que guarda datos en el caché pero no se como areglar ese problema ni por donde comenzar arreglar, si me pueden aunque sea que pasa se lo agradecería mucho porque me urge areglar ese problema

NOTA: la información la leo en TablaComponent

   obtenerInfo() {       this.http.get('url').subscribe((data) => {          // aqui lleno la informacion de la tabla       });    }  

Perdida de datos entre clases de misma capa (VB.NET)

Situación: quiero pasar los datos de login desde capa visual a logica y posterior datos, para obtener una respuesta de rol del usuario que ingresa. Problema: los datos de login que se ingresan en la capa visual, llegan con éxito hasta la clase para Usuarios de la capa de datos, pero no logro que lleguen a la superclase de clase de conexión ni al módulo donde tengo los parametros para conectarme a la BD. Los códigos:

Clase Modelo de conexion, (superclase)

Imports System.Data.Odbc Public MustIhnerit Class Conexion     Public User As String     Public Pass As String     Public DB As String     Public IP As String      Public conexion As New OdbcConnection     Public comando As New OdbcCommand     Public lector As OdbcDataReader      Public Sub New()         MsgBox(StringConexion)         'Este MsgBox muestra vacíos los campos Usuario y Password, es el String para realizar la conexión.         Me.conexion.ConnectionString = ParametrosDB.StringConexion         Me.conexion.Open()         Me.comando.Connection = Me.conexion     End Sub End Class 

Clase modelo de conexion por consultas de usuario (para login, obtener el rol del usuario etc, al momento solo intento obtener el rol)

Public Class Usuarios     Inherits Conexion     Public ro As Integer     Public User     Public Pass      Public Function ObtenerRol()         MsgBox("Usuario: " + Me.User + "; Password: " + Me.Pass)          'Este MsgBox muestra los datos que ingresé sin problemas         Dim sql = "SELECT fk_rol_empl FROM EMPLEADO WHERE USUARIO = '" + Me.User + "'"         Me.comando.CommandText = sql         lector = Me.comando.ExecuteReader()         Return ro     End Function  End Class 

Módulo al que no llegan los datos:

Module ParametrosDB      Public IP = "192.168.50.5"     Public Usuario = ""     Public DB = "baseproyecto"     Public Password = ""      Public StringConexion = "DRIVER={IBM INFORMIX ODBC DRIVER (64-bit)};                 UID=" + Usuario + ";                 PWD=" + Password + ";                 DATABASE=" + DB + ";                 HOST=" + IP + ";                 SERVER=ol_esi;                 SERVICE=9088;                 PROTOCOL=onsoctcp;                 CLIENT_LOCALE=en_US.CP1252;                 DB_LOCALE=en_US.819"     End Module 

Como los datos de Usuario y Password no llegan al módulo no puedo ingresar a la BD.
Dato que me alarma, es que con todos los msgbox que estoy utilizando para del debug, poniendo uno en la clase de cada capa, el orden en que los muestra es desde capa de datos hacia visual, cuando creo debería ser al contrario, que me dicen?

Gracias. 

insertar a una o mas tabla, o insertar en la misma tabla que sepa diferenciar los numeros de folio

la aplicacion tiene que guardar informacion a una tabla con 2 plantas , planta 1 y planta 2, cada uno tiene un numero de folio consecutivos dependiendo del año, por ejemplo si se inserta en la misma planta el numero de folio de planta 1 es 0001/2019 y planta 2 es un numero de folio precido.

MYSQL

NUM ANIO NOMBRE PESO CANTIDAD PLANTA

1 2019 AGUA 10 1 1

2 2019 AGUA 5 1 1

1 2019 AGUA 20 2 2

2 2019 ACEITE 30 3 2

MYSQL

CREATE DEFINER=`residuos`@`%` PROCEDURE `prueba`( _anio year(4), _ACEITE varchar(200), _CantidadACEITE int, _PesoACEITE int, _AGUAvarchar(200), _CantidadAGUA int, _PesoAcGUA int) BEGIN if( pesoAGUA!=0 OR pesoACEITE!=0 ) then        Insert into prueba(Numero,anio,ACEITE,CantidadACEITE,PesoACEITE,AC,CantidadAgua,PesoAgua)         values (_idnumero,_anio,         _ACEITE, _CantidadACEITE, _PesoACEITE, _AGUA , _CantidadAGU, _PesoAGUA); if( pesoAGUA2!=0 OR pesoACEITE2!=0 ) then        Insert into prueba(Numero,anio,ACEITE,CantidadACEITE,PesoACEITE,AC,CantidadAgua,PesoAgua)         values (_idnumero2,_anio,         _ACEITE2, _CantidadACEITE2, _PesoACEITE2, _AGUA2 , _CantidadAGUA2, _PesoAGUA2); END IF; END IF; END  

EL CASO EN ESTE ES QUE MIENTRAS INSERTE AL MISMO TIEMPO NO HAY PROBLEMA, PERO SI INSERTO NOMAS PLANTA 1, ME APARECE, QUE LOS PARAMETROS DE PLANTA 2 NO SE HAN LLENADO Y VICEVERSA, NECESITO QUE INSERTE EN PLANTA 1 O PLANTA 2, O EN AMBAS

Mantener scope de una clase dentro de la misma clase

Para usar la siguiente función, primero se debe importar AlertController de la libreria:

import { AlertController } from '@ionic/angular'; 

Paso siguiente es inyectarlo en el constructor de un componente cualquiera:

export class myPage implements OnInit {      ...data     constructor(private alertCtrl: AlertController){}     ...data  } 

Acto seguido, tenemos el siguiente metodo de la clase que he creado:

async getAlert(   title, message, cancelText, okText, cancelCallback, okCallback, params ){    const defaultTranslatedOptions = {     cancelText: "Cancelar",     okText: "Rechazar"   };    const alert = await this.alertCtrl.create({     header: title,     message: message,     buttons: [       {         text: cancelText ? cancelText : defaultTranslatedOptions.cancelText,         role: 'cancel',         cssClass: 'secondary',         handler: function(){           cancelCallback(...params[0]);         }       }, {         text: okText ? okText : defaultTranslatedOptions.okText,         handler: function(){           okCallback(...params[1]);         }       }     ]   });    return await alert.present();  } 

Este metodo lo que permite es crear una alerta en pantalla con dos botones de manera dinamica, (segun los datos que se le pasen al metodo), incluyendo datos como el titulo de la alerta, la descripción de la alerta, los nombres que tendran los botones, las funciones que estos ejecutaran al pulsar un boton u otro y los argumentos que se le pasara a cada función.

El problema es que si llamo a este metodo dentro de otro metodo de la MISMA clase y le paso como argumentos 5 y 6, metodos de la misma clase, obtengo en cualquiera de los dos metodos ejecutados por el metodo getAlert() que this es undefined:

requestSendingOptions(){    const roomData = {     room: scrambleStringByCharset(ALLOWED_ROOMID_CHARS, 7) + ";" + Date.now,     name: this.userData.username,     type_user: this.userData.type_user   };    this.getAlert(     '¿Qué deseas hacer?',     '¿Deseas crear un nuevo grupo o añadir los invitados a un grupo existente?',     'Crear nuevo grupo', 'Añadir a grupo existente',     this.createNewRoom,     this.toRoomSelection,     [       ['new-room', roomData],       []     ]   );  } 

Ahora bien… los callbacks que son ejecutados por medio del metodo getAlert, que a su vez este es ejecutado por el metodo requestSendingOptions de la misma clase, es irrelevante realmente ya que asi el metodo tenga o no tenga algo dentro, cuando le meto un console.log() para ver el contenido de this segun la opcion que yo haya elegido en el alert a cada uno de los dos metodos usados, en ambas me dice que this es undefined.

Error al generar apk con Visual Studio “Ya se agregó un elemento con la misma clave” Xamarin

Desarrollé una App en Xamarin.Android (No es Xamarin.forms) y cuando quiero archivarla para generar el apk me sale el error del título:

Error al crear el archivo de la aplicación ‘NombreApp’
Ya se agregó un elemento con la misma clave

La última que archivé una App fue hace 2 semanas pero era otra totalmente diferente a esta, no están relacionadas bajo ningún punto de vista.

Alguien sabe como puedo solucionarlo?

Mostrar divs que contienen la misma palabra

Me gustaría saber cómo activar una caja según palabras buscada, digamos que busco la palabra Primera me activará la caja 1 que es la que contiene esa palabra, y si busco la palabra caja me mostrará todas las cajas, ya que todas contienen esa palabra

¿cómo puedo lograr esto? usando simplemente javascript, y sin realizar busqueda de clases, ya que al realizar una busqueda de clases mostrarán un resultado muy limitado en texto.

.box{ margin-top: 20px; padding: 5px; background-color: #ddd; }
<input id="" type="text" placeholder="Palabra..."> <button>Mostrar</button>  <div class="box" style="display:none;">Esta es la primera caja</div>  <div class="box" style="display:none;">Esta es la segunda caja</div>  <div class="box" style="display:none;">Esta es la tercera caja</div>  <div class="box" style="display:none;">Esta es la cuarta caja</div>

Sumando el total de la misma columna DataGridView – CellEndEdit

Trabajo con Visual Studio 2019, Windows Forms

Tengo un DataGridView en el cual voy poniendo las cantidades por denominación de la moneda al momento que voy ingresando las cantidades voy multiplicando el valor * cantidad ese resultado va en la columna SubTotal pero a la vez también voy sumando esa columna subtotal.

El problema es que cuando llego a la última fila ingreso la cantidad pero ya no me hace las operaciones que mencione al presionar enter ya no hay mas filas y no puede salir del evento CellEndEdit la única manera es presionando la tecla TAB pero eso ya lo trabajaría en otro evento del DGV como el KeyDow

Este es el código que ocupo.

private void DgvRecuento_CellEndEdit(object sender, DataGridViewCellEventArgs e)         {             int index = dgvRecuento.CurrentRow.Index;             if (index < dgvRecuento.Rows.Count - 1)             {                 decimal valor = Convert.ToDecimal(dgvRecuento.Rows[index].Cells["colValor"].Value);                 decimal cantidad = Convert.ToDecimal(dgvRecuento.Rows[index].Cells["colCantidad"].Value);                 var resultado = valor * cantidad;                 dgvRecuento.Rows[index].Cells["colSubTotal"].Value = resultado;                 decimal recuento =                     dgvRecuento.Rows.Cast<DataGridViewRow>().Sum(x => Convert.ToDecimal(x.Cells["colSubTotal"].Value));                 lblTotalRecuento.Text = $  "{recuento:N2}";                 lblRecuento.Text = $  "{recuento:N2}";                 decimal descuadre = _efectivoCaja - recuento;                 lblDescuadre.Text = $  "{descuadre:N2}";             }         } 

¿De que manera lo puedo solucionar?

Saludos!

¿Cómo puedo actualizar una columna haciendo JOIN en la misma tabla?

Necesito actualizar la columna nombre de algunas filas de mi tabla usando el valor de otras filas relativas en esa misma tabla.

Para que se entienda mejor, he aquí una imagen de los resultados que arroja esta consulta:

SELECT id_celebracion, id_tipo, dia, semana, id_tiempo, nombre  FROM liturgia  WHERE  semana=11 AND id_tiempo=7  ORDER BY id_tipo,dia; 

introducir la descripción de la imagen aquí

En mi UPDATE yo quisiera asignar el valor de la columna nombre respectivo según el día y la semana. O sea:

  • Asignar el valor de nombre del id 588 también al id 212
  • Asignar el valor de nombre del id 589 también al id 213
  • Etc…

El criterio es que ellos coinciden en dia, en semana y en id_tiempo y se diferencian únicamente en que en uno el id_tipo es 49 y en otro es 50.

Normalmente, la consulta que yo haría sería esta:

UPDATE liturgia AS n INNER JOIN liturgia AS o ON   (n.dia=o.dia AND n.semana=o.semana AND n.id_tiempo=o.id_tiempo) SET   n.nombre = o.nombre WHERE o.semana=11 and o.id_tiempo=7 

Pero al aislar un SELECT para probar y no causar una catástrofe en la BD:

SELECT * from  liturgia AS n INNER JOIN liturgia AS o ON   (n.dia=o.dia AND n.semana=o.semana AND n.id_tiempo=o.id_tiempo) WHERE o.semana=11 and o.id_tiempo=7; 

Obtengo un resultado de 33 filas, por lo que algo no anda bien en mi consulta.

¿Mediante qué consulta podría entonces lograr la actualización requerida?