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

cerca più parole chiave con php e mysql (dove piace a X)

Per cercare in modo dinamico tutte le parole chiave, puoi utilizzare la funzione di esplosione per separare tutte le parole chiave;

$queried = mysql_real_escape_string($_POST['query']); // always escape

$keys = explode(" ",$queried);

$sql = "SELECT * FROM links WHERE name LIKE '%$queried%' ";

foreach($keys as $k){
    $sql .= " OR name LIKE '%$k%' ";
}

$result = mysql_query($sql);

Nota 1: Esci sempre dall'input dell'utente prima di utilizzarlo nella query.

Nota 2: Le funzioni mysql_* sono deprecate, usa Mysqli o PDO come alternativa

Aggiornamento 2018 - Nota 3: Non dimenticare di controllare la lunghezza del $queried variabile e impostare un limite. In caso contrario, l'utente può inserire una stringa di dimensioni variabili e mandare in crash il database.