sql >> Database >  >> RDS >> Mysql

Zoekfiltering met PHP/MySQL

Net als alle andere berichten moet je alle voorwaarden toevoegen met AND like so. Dit is het schoonste antwoord tot nu toe. Vergeet niet om echt aan je strings te ontsnappen, maar gebruik de mysqli OOP-manier in plaats van de oude mysql. Gewoon een suggestie.

Hier is een voorbeeld van een typische zoekopdracht.

Op de juiste manier:

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

De manier waarop je het doet

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

Code:

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. Hoofdlettergevoelig RLIKE

  2. Hoe te repareren "Procedure verwacht parameter '@statement' van het type 'ntext/nchar/nvarchar'." Fout in SQL Server

  3. SQL-venster selecteren rond bepaalde rij

  4. ORD() Voorbeelden – MySQL