• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

154
Vistas
Cómo relacionar dos matrices en PHP

Tengo dos matrices como A & B.


 A=[1,2,3,4] , B=[10,20,30,40]

Quiero ejecutar una consulta de actualización de mysql de una manera como esta.


 $abc1=mysql_query("update table set corr='1' WHERE id=10"); $abc1=mysql_query("update table set corr='2' WHERE id=20"); $abc1=mysql_query("update table set corr='3' WHERE id=30"); $abc1=mysql_query("update table set corr='4' WHERE id=40");

todas estas consultas de ejecución de una sola vez.

about 3 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Simplemente haga un bucle y use el índice para la segunda matriz

 $as=[1,2,3,4] , $bs=[10,20,30,40]; foreach ($as as $key=>$val) { $abc1=mysqli_query("update table set corr='".$val."' WHERE id=".$bs[$key]); }

Nota: no debe usar mysql , use mysqli en su lugar

Nota: siempre escapar

about 3 years ago · Santiago Trujillo Denunciar

0

Usando array_combine() , puede crear una nueva matriz, especificar una matriz como claves y la otra como valores en la nueva matriz. Entonces es solo cuestión de hacer un bucle en la matriz resultante y ejecutar consultas. Como ahora tiene una matriz, use un bucle foreach y use las claves (en este caso, todos los valores de $a ) y los valores (en este caso, todos los valores de $b ) como los valores que está configurando.

Esto supone que la cantidad de entradas en ambas matrices es siempre la misma. Si no son del mismo tamaño, array_combine() devolverá falso; puede usarlo como verificación antes de realizar las consultas.

 $a = [1, 2, 3, 4]; $b = [10, 20, 30, 40]; $result = array_combine($a, $b); foreach ($result as $k=>$v) { mysqli_query("UPDATE table SET corr='$k' WHERE id = '$v'"); }

Dicho esto, esta consulta es vulnerable a la inyección de SQL y debe actualizar a una API más nueva que admita consultas parametrizadas con marcadores de posición ( mysqli_* o PDO). La API mysql_* quedó obsoleta en PHP 5.6 y se eliminó por completo en PHP7.

  • ¿Por qué no debería usar funciones mysql_* en PHP?

  • ¿Cómo puedo evitar la inyección de SQL en PHP?

  • Manual para array_combine()

about 3 years ago · Santiago Trujillo Denunciar

0

$a=[1,2,3,4];$b=[10,20,30,40]; $res=array_combine($a, $b ); foreach ($res as $key => $value) { $abc1=mysql_query("update table set corr='".$key."' WHERE id=".$value); }
about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda