Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Comparar consulta con varios resultados con variable

Estas en el tema de Comparar consulta con varios resultados con variable en el foro de PHP en Foros del Web. Hola Gente! Tengo un pequeño problemita que no se como resolver Este es mi código: Código PHP: <?php $consulta  =  mysqli_query ( $dbservidor , "SELECT origen, destino FROM registro WHERE dni = '" ...
  #1 (permalink)  
Antiguo 09/05/2019, 11:29
 
Fecha de Ingreso: febrero-2012
Ubicación: Cancun
Mensajes: 70
Antigüedad: 7 años, 3 meses
Puntos: 0
Comparar consulta con varios resultados con variable

Hola Gente! Tengo un pequeño problemita que no se como resolver

Este es mi código:

Código PHP:
<?php
$consulta 
mysqli_query($dbservidor,"SELECT origen, destino FROM registro WHERE dni = '".$_SESSION['dni_input']."'");

              while (
$resultado mysqli_fetch_array($consulta)) {

              
$tramo $resultado['origen'].$resultado['destino'];
}

    
$tramo2 $_POST['origen'].$_POST['destino'];

    if (
$tramo == $tramo2) {

                echo 
"YA SE EMITIO UN BOLETO CON ESTE TRAMO";

                
?>
El problema es que de la manera en que lo tengo, solo me compara el ultimo resultado de la consulta, y no todos. Puede haber uno, dos, tres, etc.

Como se hace en ese caso? Ingresar el IF dentro del WHILE?

Gracias por la ayuda. Saludos!
  #2 (permalink)  
Antiguo 09/05/2019, 13:16
 
Fecha de Ingreso: abril-2006
Mensajes: 243
Antigüedad: 13 años, 1 mes
Puntos: 32
Respuesta: Comparar consulta con varios resultados con variable

Cita:
Iniciado por agustinpak Ver Mensaje
Hola Gente! Tengo un pequeño problemita que no se como resolver

Este es mi código:

Código PHP:
<?php
$consulta 
mysqli_query($dbservidor,"SELECT origen, destino FROM registro WHERE dni = '".$_SESSION['dni_input']."'");

              while (
$resultado mysqli_fetch_array($consulta)) {

              
$tramo $resultado['origen'].$resultado['destino'];
}

    
$tramo2 $_POST['origen'].$_POST['destino'];

    if (
$tramo == $tramo2) {

                echo 
"YA SE EMITIO UN BOLETO CON ESTE TRAMO";

                
?>
El problema es que de la manera en que lo tengo, solo me compara el ultimo resultado de la consulta, y no todos. Puede haber uno, dos, tres, etc.

Como se hace en ese caso? Ingresar el IF dentro del WHILE?

Gracias por la ayuda. Saludos!
Código PHP:
Ver original
  1. <?php
  2. $consulta = mysqli_query($dbservidor,"SELECT origen, destino FROM registro WHERE dni = '".$_SESSION['dni_input']."'");
  3.  
  4. while ($resultado = mysqli_fetch_array($consulta)) {
  5.  
  6.       $tramo = $resultado['origen'].$resultado['destino'];
  7.       $tramo2 = $_POST['origen'].$_POST['destino'];
  8.       if ($tramo == $tramo2) {
  9.        echo "YA SE EMITIO UN BOLETO CON ESTE TRAMO";  
  10.      }
  11. }
  12. ?>
metelo en el mismo bucle . y comparas los valores de tu POST con cada elemento que te devuelve el array
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.me/pools/c/87BTML2gwr
  #3 (permalink)  
Antiguo 10/05/2019, 06:30
 
Fecha de Ingreso: febrero-2012
Ubicación: Cancun
Mensajes: 70
Antigüedad: 7 años, 3 meses
Puntos: 0
Respuesta: Comparar consulta con varios resultados con variable

Gracias por tu ayuda! Aunque sigo con el problema. Lo que sucede es que de esa manera, si el array tiene mas de una variable, me muestra en pantalla todas las veces que la condición se cumple "YA SE EMITIÓ UN BOLETO CON ESTE TRAMO". Y si por ejemplo, el array tiene 3 variables, y la condición no se cumple, me va a imprimir 3 boletos. Pongo el código completo para mas detalles:

Código PHP:
<?php 
$consulta 
mysqli_query($dbservidor,"SELECT origen, destino FROM registro WHERE dni = '".$_SESSION['dni_input']."'"); 
 
while (
$resultado mysqli_fetch_array($consulta)) { 
 
      
$tramo $resultado['origen'].$resultado['destino'];
      
$tramo2 $_POST['origen'].$_POST['destino'];
      if (
$tramo == $tramo2) { 
       echo 
"YA SE EMITIÓ UN BOLETO CON ESTE TRAMO";
       echo 
'<a href="index.php">VOLVER</a>';
     }else{
       
"CÓDIGO IMPRESIÓN BOLETO"
     
}

?>
Lo que quiero es que si el array tiene mas de una variable, primero cumpla el ciclo de verificar si $tramo es igual a $tramo2, y después si es afirmativo, indicarlo en pantalla una vez, caso contrario, imprimir el boleto.

Espero se haya entendido. Muchas gracias nuevamente!
  #4 (permalink)  
Antiguo 10/05/2019, 22:33
 
Fecha de Ingreso: abril-2006
Mensajes: 243
Antigüedad: 13 años, 1 mes
Puntos: 32
Respuesta: Comparar consulta con varios resultados con variable

ahora que veo mas detenidamente tu codigo, veo que podrias hacer esa comparacion dentro de la consulta MYSQL y solo ver si existe 1 registro que coincida
Código PHP:
Ver original
  1. <?php  
  2. $consulta = mysqli_query($dbservidor,
  3. "SELECT origen, destino
  4.        FROM registro
  5.       WHERE dni = '".$_SESSION['dni_input']."'
  6.       AND origen=   '".$_POST['origen']."'  
  7.       AND destino=   '".$_POST['destino']."'  
  8.      LIMIT 0,1;  
  9. ");  
  10.  
  11. if ($resultado = mysqli_fetch_array($consulta)) {  
  12.        echo "YA SE EMITIÓ UN BOLETO CON ESTE TRAMO";
  13.        echo '<a href="index.php">VOLVER</a>';
  14. }else{
  15.        echo "CODIGO de IMPRESION";
  16. }
  17.  
  18. ?>

ese COdigo es ilustrativo tiene fallos de seguridad, te podrian meter un SQL Injection. asi que procura limpiar las variables POST antes de usarlas
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.me/pools/c/87BTML2gwr



La zona horaria es GMT -6. Ahora son las 01:46.