Maison  >  Questions et réponses  >  le corps du texte

Implémenter le tri des données dans MariaDb en utilisant PHP et MYSQL

J'essaie de récupérer les enregistrements dans l'ordre dans lequel je pense qu'ils ont été consultés.

Mon code est le suivant :

Données à rechercher :

$to_check="Yes_ij_affirmation', ',_cm', 'there_px_ex', 'is_vbz_1', '._fs";

Sélectionnez la déclaration :

$sql = "SELECT wd, wd_ps2, rt1, rt4, definition FROM august_2022 WHERE wd_ps2 IN ($to_check) order by ".$to_check."";

Le résultat est (je l'ai mis dans une liste pour faciliter la comparaison avec le résultat original) :

Je ne sais pas si ce que j'essaie de faire est possible, mais les suggestions sont les bienvenues.

WW

P粉085689707P粉085689707222 Il y a quelques jours525

répondre à tous(2)je répondrai

  • P粉638343995

    P粉6383439952024-04-04 00:33:21

    Vous devez ajouter des guillemets dans votre code

    $to_check="'Yes_ij_affirmation', ',_cm', 'there_px_ex', 'is_vbz_1', '._fs'";

    Et l'instruction select devrait ressembler à ceci :

    $sql = "SELECT wd, wd_ps2, rt1, rt4, definition FROM august_2022 WHERE wd_ps2 IN ($to_check) order by " .$to_check;

    répondre
    0
  • P粉131455722

    P粉1314557222024-04-04 00:11:43

    Vous devez ajouter des guillemets au début et à la fin de $to_check.

    Vous pouvez ensuite utiliser la fonction FIELD() pour trier par position dans la liste.

    $to_check="'Yes_ij_affirmation', ',_cm', 'there_px_ex', 'is_vbz_1', '._fs'";
    
    $sql = "SELECT wd, wd_ps2, rt1, rt4, definition 
            FROM august_2022 
            WHERE wd_ps2 IN ($to_check) 
            order by FIELD(wd_ps2, $to_check)"

    répondre
    0
  • Annulerrépondre