php – Registrar dos tablas al mismo tiempo usando como FK en una tabla el ID de la otra

Tengo dos tablas

Usuario y Docente

Lo que quiero hacer es registrar un usuario, e inmediatamente despues registrar un nuevo Docente, pero este docente, deberá tener como FK la Pk del usuario que acabo de crear.

En la logica que tengo en mente, seria algo asi.

`Insert usuario......{{Aqui haria el insert de mi usuario}}`

Inmediatamente debajo haria otra consulta usando la funcion

`SELECT LAST_INSERT_ID();` 

Para obtener el ultimo ID registrado en mi tabla Usuarios y con este ID registrar mi Docente

`Insert Docente......{{Aqui haria el insert de mi Docente colocando como FK el ID de usuario}}`

Pregunto esto, porque habran muchos usuarios y docentes registrandose al mismo tiempo y tengo miedo de que en los pocos microsegundos entre registrar a mi usuario, extraer su ID y registrar el docente, otro usuario se registre y hayan errores.
Es una duda que tengo y quisiera poder aclararla o si esta es la forma correcta de hacerlo.

PDTA: Estoy trabajando con LARAVEL, si tienen una mejor forma de hacerlo con este Framework, me encantaría saberlo..

python – Agrupar registros por un campo con el mismo valor en Django

mi pregunta es la siguiente. Quiero agrupar una serie de registros, que comparten un mismo valor con un mismo campo. Lo he hecho con un bucle for, pero estoy seguro que hay otra manera más rápida o más profesional para hacerlo con Django.
Habría alguna manera de hacerlo solo con una consulta, o con un list comprehension?

@login_required()
def massiveChargesTrucker(request):


    chargeMassiveUpload = ChargeMassiveUpload.objects.select_related('whatever').values('id','whatever').annotate(dcount=Count('massive_upload_id')).order_by()

    print(chargeMassiveUpload)
    result = ()
    massive_id = ''
    for chargemassive in chargeMassiveUpload:
        if chargemassive('massive_upload_id') != massive_id:
            result.append({
                'id': chargemassive('massive_upload_id'),
                'whatever': chargemassive('whatever'),
                'whatever': chargemassive('whatever'), 
                })
        massive_id = chargemassive('massive_upload_id')

    return render(request, 'charges/massive.html',{
        'result':result
        })

javascript – porque este for no esta fucnionando si es lo mismo que el codigo que sustituye

Esta funcion esta destinada a agregar eventos a varios divs. de la segunda forma funciona pero queiro hacer mas corto el codigo, cuando lo convierto en for ya no fucniona no se agrga nada, se supone que deberia fucnionar asi, o me estoy equivocando en como funcionan los fors

function agregarEventosClick() {

    for( i = 0; i > colores.length; i++){
      colores(i).addEventListener("click", this.elegirColor);
    }

    // colores.verde.addEventListener("click", this.elegirColor);
    // colores.amarillo.addEventListener("click", this.elegirColor);
    // colores.rojo.addEventListener("click", this.elegirColor);
    // colores.azul.addEventListener("click", this.elegirColor);
    // colores.blanco.addEventListener("click", this.elegirColor);

    // colores.box1.addEventListener("click", this.elegirColor);
    // colores.box2.addEventListener("click", this.elegirColor);
    // colores.box3.addEventListener("click", this.elegirColor);
    // colores.box4.addEventListener("click", this.elegirColor);
  }

Disparar y para un mp3 con el mismo boton en arduino uno y sparkfun mp3 shield

tengo un arduino 1 v3 y una sparkfun mp3 player shield v15. Necesito que con un mismo boton (un boton arcade) al pulsarlo la primera vez dispare un mp3 y al pulsarlo otra vez se pare. Asi en loop, intente copiar de un proyecto de ejemplo de sparkfun pero no soy capaz de que suene.

    #include <SPI.h>           // SPI library
#include <SdFat.h>         // SDFat Library
//#include <SdFatUtil.h>     // SDFat Util Library
#include <SFEMP3Shield.h>  // Mp3 Shield Library

SFEMP3Shield MP3player;


int reedSwitch = 4;

boolean active = false;


void setup() {
  pinMode(reedSwitch, INPUT); //Reed Switch
  digitalWrite(reedSwitch, HIGH); //turn on internal pullups for reed input


  MP3player.begin();
  MP3player.setVolume(0x00, 0x00); //set volume
}

void loop() 
{
  
    if (digitalRead(reedSwitch) == HIGH && !active)//when door opens
    {
      active = true;
      MP3player.stopTrack();
      MP3player.playTrack(1);
    }
    else if (digitalRead(reedSwitch) == LOW && active)//
    {
      active = false;
      MP3player.stopTrack();
  
    }
  


  delay(100);
}

python 3.x – Siempre obtengo el mismo registro dentro de una lista

Tu problema es que la expresión xpath() que usas dentro del bucle contiene una ruta absoluta. Es decir, aquí por ejemplo:

  precio= articulo.xpath('//span(@class="price-tag-fraction")//text()').get()

Aunque articulo es un elemento particular, al ejecutar sobre él .xpath() puedes pasarle una ruta absoluta o relativa. Si se la pasas absoluta (que comience por /) se aplicará desde la raíz del documento, en vez de desde ese elemento.

Cambialo por una ruta relativa, así:

            for articulo in response.xpath('//li(@class="ui-search-layout__item")'):
               precio= articulo.xpath('.//span(@class="price-tag-fraction")//text()').get()
               titulo= articulo.xpath('.//h2(@class="ui-search-item__title")//text()').get()

Ahora el resultado será:

{'price': '2.099', 'title': 'Plants vs. Zombies: Garden Warfare 2 Standard Edition Electronic Arts PS4 Físico'}
{'price': '1.399', 'title': 'FIFA 19 Standard Edition Electronic Arts PS4 Físico'}
{'price': '3.199', 'title': 'Gran Turismo Sport Standard Edition Sony PS4 Físico'}
// ... omitidos ...
{'price': '2.077', 'title': 'Juego Ps4 Shadow Of War Middle Earth Oferta Navidad'}
{'price': '1.799', 'title': 'Metal Gear Survive Juego Ps4 Fisico/ Mipowerdestiny'}

postgresql – ¿Cómo se podría combinar resultados que tengan el mismo alias?

Quisiera una forma de combinar o sumar datos con el mismo alias “estado” como en el caso de Applied y No Qualified que se repiten en alias “estado” pero tienen diferente valor de “cantidad”, ¿alguno podría echarme una mano?, esta es mi consulta:

SELECT e.eac_clave AS "estado", COUNT(e.eac_clave)
FROM vacante v LEFT JOIN estadoaplicacion e ON e.vac_id = v.vac_id AND v.vac_id = 128 
JOIN candidatoxvacante cxv ON e.eac_id = cxv.eac_id GROUP BY e.eac_clave
UNION SELECT e.eac_clave AS "estado", CASE
    WHEN COUNT(*) = 1 THEN 0
END
FROM vacante v JOIN estadoaplicacion e
ON e.vac_id = v.vac_id AND v.vac_id = 128 GROUP BY e.eac_clave 
ORDER BY "count"

¿Cómo contar registros duplicados y, al mismo tiempo, poder imprimir otros datos en PHP y MYSQL?

Tengo el siguiente registro en mi tabla logtrama:

id_logtrama    fechaHora    idCliente    idEquipo
    1          2021-04-18       20          8
    2          2021-04-18       20          8
    3          2021-04-18       20          8
    4          2021-04-18       20          1
    5          2021-04-18       4           4

Y, en mi tabla equipo lo siguiente:

idEquipo    idCliente     tipo
    1          20        Alarm1
    2          1         Alarm2
    3          2         Alarm3
    8          20        Alarm4

Ahora, a través de mi consulta, imprimo resultados que coinciden con las condiciones dadas y, sin repetidos:

$stmt = $con->prepare("SELECT l.id_logtrama,
                                    l.fechaHora,
                                    l.idCliente,
                                    l.idEquipo,
                                    l.statusGlobal
                                FROM logtrama l
                                JOIN equipo e
                                    ON l.idEquipo=e.idEquipo
                                    AND l.idCliente=e.idCliente
                                JOIN
                                    (SELECT MAX(t.id_logtrama) id_logtrama,
                                        COUNT(*) totals
                                    FROM logtrama t
                                    JOIN equipo e
                                        ON e.idEquipo = t.idEquipo
                                        AND e.idCliente = t.idCliente
                                    GROUP BY t.idcliente, t.idequipo) c
                                    ON c.id_logtrama = l.id_logtrama
                                WHERE DATE(fechaHora)=?");
$stmt->bind_param("s", $date_day);

En otras palabras, ya no me imprimirá los duplicados:

    1          2021-04-18       20          8
    2          2021-04-18       20          8
    3          2021-04-18       20          8
    4          2021-04-18       20          1

obtendré el siguiente resultado:

    3          2021-04-18       20          8
    4          2021-04-18       20          1

Ya en PHP sería:

    while ($stmt->fetch()) {
        echo 'ID logtrama: '.$id_logtrama.' Fecha: '.$fechaHora.' ID cliente: '.$pag_idCliente.' ID equipo: '.$pag_idEquipo.'';
    }

Salida:

ID logtrama: 3 Fecha: 2021-04-18 ID cliente: 20 ID equipo: 8
ID logtrama: 4 Fecha: 2021-04-18 ID cliente: 20 ID equipo: 1 

Hasta ahora todo bien, pero necesito también poder imprimir los repetidos, por ejemplo:

    1          2021-04-18       20          8
    2          2021-04-18       20          8
    3          2021-04-18       20          8
    4          2021-04-18       20          1

Se puede ver 1, 2, 3 tienen datos repetidos, entonces como puedo tener la siguiente salida de datos:

ID logtrama: 3 Fecha: 2021-04-18 ID cliente: 20 ID equipo: 8 Total de registro repetidos: (3)
ID logtrama: 4 Fecha: 2021-04-18 ID cliente: 20 ID equipo: 1 Total de registro repetidos: (1)



ID logtrama: 3 Fecha: 2021-04-18 ID cliente: 20 ID equipo: 8 

En la misma consulta que condiciones debo emplear para poder imprimir lo que deseo lograr.

php – Update está quitando dos item con el mismo código

He estado tratando de actualizar mi tabla usando PHP, si bien se actualiza la tabla, si en dicha tabla hay dos item con el mismo código a pesar de que el campo cantidad sea diferente, se borran los 2 item en vez de uno solo, el código en PHP es el siguiente:

<?php
$codigo=$_POST('codigo') ?? "";

if($codigo){
    include 'conexion.php';
    if($conexion){
        $consulta="update agregados set estado='0' where codigo=?";
        if($stmt=mysqli_prepare($conexion,$consulta)){
            mysqli_stmt_bind_param($stmt,"s",$codigo);
            
            if(mysqli_stmt_execute($stmt)){
                $output="Filas actualizadas: ".mysqli_stmt_affected_rows($stmt);
            }else{
                $output="Error ejecutando la consulta: ".mysqli_error($conexion);
            }    
        }else{
            $outPut="Error preparando la consulta: ".mysqli_stmt_error($stmt);
        }
        
        mysqli_close($conexion);
    }else{
        $output="No hay conexion";
    }
}else{
    $output="Codigo vacio o no valido";
}

echo $output;
?>

sql – Se pueden utilizar 2 tipos de bases de datos diferentes en el mismo programa?

Quiero hacer un proyecto y he estado averiguando cual base de datos es mas conveniente, tengo entendido que para el login es mejor una base estructurada (sql) y para subidas de archivos es mejor no estructurada (no-sql). Mi pregunta es si puedo usar por ejemplo MySQL y MongoDB en un mismo programa. Disculpen mi ignorancia, soy un poco nuevo en esto 🙂