Problema con LIKE Sql

MikiProgrammer

Utente Attivo
9 Mag 2015
63
2
8
Buongiorno,
ho questo script php che mi ricerca nel database tutti gli username che hanno nel nome la variabile $key che varia in base alla stringa inserita dall'utente...
Se la $key è "a", lui se ne frega alla grande della $key e mi stampa tutti gli username...
PHP:
<?php
session_start();
ob_start();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL | E_STRICT);
$output='';
$key = $_GET['key'];
include('../functions/db.php');
if ($key = ''){
    $output = "0";
}
if ($key == '&#180'){
    $output = "0";
    exit;
}
$search = "SELECT * FROM users WHERE username LIKE '%$key%'";
$res = mysqli_query($conn, $search);
while ($row = mysqli_fetch_array($res, MYSQLI_BOTH)){
    $output = $output . $row['username'] . "<br>";
}
echo $output;
?>
 
Se la $key è "a", lui se ne frega alla grande della $key e mi stampa tutti gli username...
non ci credo,
stampa tutti gli username che hanno al loro interno la "a" (in qualunque posizione)
se tu avessi lo username "pippo", non sarebbe selezionato

a meno che nel codice contenuto nell'include, pasticci la variabile $key

ps, prova a selezionare "u" ....
 
Ultima modifica:
L'include è solo il file di connessione al db... qualunque key io abbia, lui mi stampa TUTTI gli username del database
 
Ciao, hai provato a stampare la query ?
PHP:
echo $search;
ps:
il problema è qui
PHP:
if ($key = ''){
ci vuole il doppio uguale altrimenti non fai un confronto ma un assegnazione
 
Forse non mi sono spiegato, ma il problema non è che la $key è vuota, ma è che la query non funziona bene...
 
Con la $key vuota la query diventa cosi
Codice:
SELECT * FROM users WHERE username LIKE '%%'
di conseguenza ti mostra tutti i risultati.
 
Ho risolto... Forse quei due if creavano problemi perché ora che li ho tolti funziona tutto a meraviglia... Grazie mille per l'aiuto e l'interessamento
 

Discussioni simili