我正在做一個練習,從sql數據庫獲取產品列表(不使用對象)。 我已經明白了,但現在我想添加按照用戶在每個表格標題旁放置的小小的向上和向下箭頭點擊asc或desc orden的結果。PHP/MYSQL:如何訂購項目列表,點擊鏈接
這是我的原代碼:現在
<?php
@$link=mysqli_connect('127.0.0.1','root','','phpdb')
OR die('No se pudo conectar a la base');
$sql='SELECT p.cod_producto,
p.nombre,
p.precio,
p.stock,
p.cod_categoria,
c.descripcion,
p.cod_marca,
m.nombre_marca
FROM productos p JOIN categorias c, marcas m
WHERE p.cod_categoria=c.cod_categoria
AND p.cod_marca=m.cod_marca';
@$rs=mysqli_query($link,$sql)
OR die('No se puede ejecutar la consulta a la base');
?>
<table border='1'>
<tr>
<th>Cod. Producto</th>
<th>Nombre</th>
<th>Precio</th>
<th>Stock</th>
<th>Cod. Categoría</th>
<th>Descripción</th>
<th>Cod. Marca</th>
<th>Nombre Marca</th>
</tr>
<?php
$linea=1;
while($v=mysqli_fetch_assoc($rs)){
if($linea%2==1) $color='#ccccff';
else $color='#ffffff';
?>
<tr>
<td bgcolor="<?php echo $color; ?>"><?php echo $v['cod_producto']; ?></td>
<td bgcolor="<?php echo $color; ?>"><?php echo $v['nombre']; ?></td>
<td bgcolor="<?php echo $color; ?>"><?php echo $v['precio']; ?></td>
<td bgcolor="<?php echo $color; ?>"><?php echo $v['stock']; ?></td>
<td bgcolor="<?php echo $color; ?>"><?php echo $v['cod_categoria']; ?></td>
<td bgcolor="<?php echo $color; ?>"><?php echo $v['descripcion']; ?></td>
<td bgcolor="<?php echo $color; ?>"><?php echo $v['cod_marca']; ?></td>
<td bgcolor="<?php echo $color; ?>"><?php echo $v['nombre_marca']; ?></td>
</tr>
<?php
$linea++;
}
?>
<tr>
<td colspan='<?php echo mysqli_num_fields($rs);?>' align="center">
Registros: <?php echo mysqli_num_rows($rs);?></td>
</tr>
<?php
mysqli_close($link);
?>
</table>
,爲了做到這一點,我想利用開關語句,但這didn't工作(我想我應該用$ _GET或$彥博,但鴕鳥政策知道如何在這裏使用它,我也說我shouldn't再次複製整個查詢......事)我想這個變化,沒有運氣:
<?php
@$link=mysqli_connect('127.0.0.1','root','','phpdb')
OR die('No se pudo conectar a la base');
$sql='SELECT p.cod_producto,
p.nombre,
p.precio,
p.stock,
p.cod_categoria,
c.descripcion,
p.cod_marca,
m.nombre_marca
FROM productos p JOIN categorias c, marcas m
WHERE p.cod_categoria=c.cod_categoria
AND p.cod_marca=m.cod_marca';
switch ($sql) {
case 'codProdUp':
'SELECT p.cod_producto,
p.nombre,
p.precio,
p.stock,
p.cod_categoria,
c.descripcion,
p.cod_marca,
m.nombre_marca
FROM productos p JOIN categorias c, marcas m
WHERE p.cod_categoria=c.cod_categoria
AND p.cod_marca=m.cod_marca
ORDER BY p.cod_producto ASC ';
break;
case 'codProdDown':
'SELECT p.cod_producto,
p.nombre,
p.precio,
p.stock,
p.cod_categoria,
c.descripcion,
p.cod_marca,
m.nombre_marca
FROM productos p JOIN categorias c, marcas m
WHERE p.cod_categoria=c.cod_categoria
AND p.cod_marca=m.cod_marca
ORDER BY p.cod_producto DESC ';
break;
}
請注意,I'已閱讀this solution,建議使用isset(),但不知道如何在這裏複製它。我也認爲,使用開關可能會更容易...
所以,這是相同的resut每次只oredered不同的設定?您應該在應用程序級別處理該邏輯 - 有點Ajax可以爲您做到這一點。 – Strawberry
使用ajax和php –