Хотел приказать array, чтобы он создал начиная с mysqli_fetch_array

Дружелюбный привет, я хотел бы знать, как упорядочивать список, который он создавал бы начиная с одного mysqli_fetch_array.

Помимо этого кода у меня есть поисковая служба, что я хочу, состоит, в том, чтобы результаты поисков оказались у меня упорядоченными в какой-то специфической линии, например я нумерую кода или имени.

<?php
require ("datos_de_acceso.php");
$conexion=mysqli_connect($db_host,$db_usuario,$db_contra);
if (mysqli_connect_errno()){
    echo "Fallo al conectar con la BBDD";
    exit();
}

mysqli_set_charset($conexion, "utf-8");
mysqli_select_db($conexion, $db_nombre) or die ("No se encuentra la base de datos");
mysqli_query($conexion, "SET NAMES 'utf8'");

$busqueda=$_GET["buscar"];

if (is_numeric($busqueda)){
 $consulta="SELECT * FROM hoja1 WHERE codigo LIKE '%$busqueda%'";
 $resultado=mysqli_query($conexion, $consulta);
}else{
 $consulta="SELECT * FROM hoja1 WHERE materia LIKE '%$busqueda%'";
 $resultado=mysqli_query($conexion, $consulta);
}

while($fila=mysqli_fetch_array($resultado, MYSQL_ASSOC)){
 echo "<table border='1px' width='51%' align='left'><tr>";
 echo "<td width='4%'>" . $fila['numero'] . "</td>";
 echo "<td width='8%'>" . $fila['codigo'] . "</td>";
 echo "<td width='30%'>" . $fila['materia'] . "</td>";
 echo "<td width='8%'>" . $fila['seccion'] . "</td>";
 echo "</tr></table>";  
}
?>
2
задан 23.06.2016, 01:40
2 ответа

У тебя есть два выбора, или даже сочетать их:

  1. Использовать ORDER BY в момент делания консультации, чтобы упорядочивать их произошедшие из-за поля или полей, которые ты желаешь, в восходящей или нисходящей форме:

    SELECT * FROM hoja1 WHERE codigo LIKE '%$busqueda%' ORDER BY codigo ASC
    

    Упорядочивать из-за более чем одного поля (сначала по нисходящему имени и потом из-за кода):

    SELECT * FROM hoja1 WHERE codigo LIKE '%$busqueda%' ORDER BY nombre DESC, codigo ASC
    
  2. Использовать библиотеку Javascript (чтобы не изобретать колесо заново) в frontend, чтобы упорядочивать таблицу в любом моменте из-за поля, которое ты желаешь, хотя в зависимости от количества реестров может не быть так интересно это решение (в условиях результата):

    Tablesort: https://github.com/tristen/tablesort

    Datatables (он требует jQuery): https://datatables.net /

3
ответ дан 24.11.2019, 14:05

Здесь я оставляю тебе функцию, чтобы упорядочивать array на основании 1 поля.

private function orderMultiDimensionalArray($toOrderArray, $field, $inverse) {

    $position = array();
    $newRow = array();

    foreach ($toOrderArray as $key => $row) {
        $position[$key] = $row[$field];
        $newRow[$key] = $row;
    }

    if ($inverse) {
       arsort($position);
    } else {
        asort($position);
    }

    $returnArray = array();

     foreach ($position as $key => $pos) {
         $returnArray[] = $newRow[$key];
     }

    return $returnArray;
 }

Параметры:

  1. $toOrderArray = - array с данными, которых нужно упорядочивать.
  2. $field = - поле, из-за которого queres упорядочивать. Из-за ej: я нумерую или код твоего array.
  3. $inverse = TRUE упорядочивает восходящей формы.
0
ответ дан 24.11.2019, 14:05

Теги

Похожие вопросы