sql >> Database teknologi >  >> RDS >> Mysql

Søgefiltrering med PHP/MySQL

Ligesom alle de andre indlæg bliver du nødt til at tilføje alle betingelserne OG synes godt om. Dette er det reneste svar hidtil. Husk at undslippe dine strenge, men brug mysqli OOP-måden i stedet for den gamle mysql. Bare et forslag.

Her er et eksempel på en typisk forespørgsel.

Den korrekte måde:

SELECT * FROM donar WHERE name='dxenaretionx' AND sex='M';

Sådan gør du det

SELECT * FROM donar WHERE name='dxenaretionx' sex='M';

Kode:

function search_donar($_POST) {
    $by_name = $_POST['by_name'];
    $by_sex = $_POST['by_sex'];
    $by_group = $_POST['by_group'];
    $by_level = $_POST['by_level'];

    //Do real escaping here

    $query = "SELECT * FROM donar";
    $conditions = array();

    if(! empty($by_name)) {
      $conditions[] = "name='$by_name'";
    }
    if(! empty($by_sex)) {
      $conditions[] = "sex='$by_sex'";
    }
    if(! empty($by_group)) {
      $conditions[] = "blood_group='$by_group'";
    }
    if(! empty($by_level)) {
      $conditions[] = "e_level='$by_level'";
    }

    $sql = $query;
    if (count($conditions) > 0) {
      $sql .= " WHERE " . implode(' AND ', $conditions);
    }

    $result = mysql_query($sql);

    return $result;
}


  1. MySQL viser status - aktive eller samlede forbindelser?

  2. Sådan får du en beregnet kolonnes definition i SQL Server ved hjælp af T-SQL

  3. Hvorfor opstod der en netværksrelateret eller instansspecifik fejl under oprettelse af en forbindelse til SQL Server?

  4. Bruger du .aggregate() på en værdi introduceret ved hjælp af .extra(select={...}) i en Django-forespørgsel?