Select multiple rows mysql

2

I need 3 rows of a table that have certain id.

This is my current query that gets only one record

$query='SELECT precios.id_precio, precios.precio, precios.descarga, precios.carga FROM wifmaxco_web.precios WHERE precios.id_precio="1"';  

$tabla=mysql_query($query);

But I need to make a query of several records based on the id 1, 8, 14, 20.

Is there a way to retrieve multiple rows with a single query?

    
asked by Maurocrispin 11.10.2016 в 20:54
source

6 answers

4

You can use the " IN "

function
<?php
$query = 'SELECT precios.id_precio, precios.precio, precios.descarga, precios.carga
   FROM wifmaxco_web.precios
   WHERE precios.id_precio IN (1,8,14,20)';
?>

Then you should iterate the result:

<?php
$result = mysqli_query($con, $query);
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
     var_dump($row);
}
?>

Note: You should use mysqli because mysql is deprecated. More info here: link

    
answered by 11.10.2016 / 21:07
source
1

I would do it using 'IN'. It is the shortest way to do it. Here you have examples and other explanations.

link

    
answered by 11.10.2016 в 21:00
0

Try changing prices.price_="1" for prices.id_price IN (1,2,3)

In your example, it would be like this

SELECT precios.id_precio, precios.precio, precios.descarga, precios.carga FROM wifmaxco_web.precios WHERE precios.id_precio IN (1,2,3)

What the IN operator does in this case is to filter for each of the elements that are in parentheses.

Luck.

    
answered by 11.10.2016 в 21:13
0

It has several ways. The first is to use "OR", cumbersome but it works;

$query='SELECT precios.id_precio, precios.precio, precios.descarga, precios.carga
FROM wifmaxco_web.precios
WHERE precios.id_precio="1"
    OR precios.id_precio="8"
    OR precios.id_precio="14"
    OR precios.id_precio="20"';

You can use IN as in other answers;

$query='SELECT precios.id_precio, precios.precio, precios.descarga, precios.carga
FROM wifmaxco_web.precios
WHERE precios.id_precio IN("1", "8", "14", "20")';

The "IN" can be combined with subqueries ie another SELECT. There is more information about that on the mysql page link

    
answered by 11.10.2016 в 21:17
0

Good, your query would be like this, you can do it with sql:

        $query='SELECT precios.id_precio, precios.precio, precios.descarga, precios.carga 
    FROM wifmaxco_web.precios 
WHERE precios.id_precio="1" or precios.id_precio="24" or precios.id_precio="45645"';
    
answered by 11.10.2016 в 20:57
0

You can do it with a in

$query = 'select precios.id_precio, precios.precio, precios.descarga, precios.carga
   from wifmaxco_web.precios
   where precios.id_precio IN (1,8,14,20)';

$Resultado = mysqli_query($conexionBD,$query)
or die(mysqli_error($conexionBD));/// en esta parte si se presenta algun error la pagina te lo mostrara

//// luego recorres cada una de las filas con un array asociativo para recuperar los datos por su encabezado.

while($ResultadoArray = mysqli_fetch_assoc($Resultado)){

$Array = $ResultadoArray;

$PRECIO = $Array['ENCABEZADO DE LA COLUMNA'];

echo $PRECIO;//// y aqui ves el valor que va retornando a la hora de recorrer el ciclo.

}

while($ResultadoArray = mysqli_fetch_assoc($Resultado)){

$Array[] = $ResultadoArray; /// esto si bien quieres luego imprimir un json

}

$Json = json_encode($Array);
echo $Json;

I hope and serve you, greetings.

    
answered by 18.06.2018 в 16:59