Оператор SQL из базы данных

я не «за» в SQL.

У меня есть следующий сценарий:

Стол: favcolor

 User   |Red    |Blue   |Yellow |Green  |Black
Klaus  |0      |1      |1      |0      |0
Jessy  |1      |0      |1      |0      |1
Andy   |1      |1      |0      |0      |0
Alex   |0      |0      |0      |1      |1
Denis  |1      |1      |0      |0      |1

HTML код

 <form method="post" action="./usercolor.php"> <input type="checkbox" id="colorred" name="colorred" value="1" />red</td>
<input type="checkbox" id="colorblue" name="colorblue" value="1" />blue</td>
<input type="checkbox" id="coloryellow" name="coloryellow" value="1" />yellow</td>
<input type="checkbox" id="colorgreen" name="colorgreen" value="1" />green</td>
<input type="checkbox" id="colorblack" name="colorblack" value="1" />black</td>
<input type="submit" value="SEARCH" /> </form>

PHP / SQL (с использованием MySQL 5.6):

    $colorred       =   $_POST["colorred"];
$colorblue      =   $_POST["colorblue"];
$colorgreen     =   $_POST["colorgreen"];
$coloryellow    =   $_POST["coloryellow"];
$colorblack     =   $_POST["colorblack"];

SELECT * FROM favcolor WHERE red = '".$colorred."' AND blue = '".$colorblue."' AND green = '".$colorgreen."' AND yellow = '".$coloryellow."' AND black = '".$colorblack."'

Теперь к моей проблеме:
Например, я хочу знать, какому пользователю нравится желтый цвет. Затем я проверяю флажок с идентификатором «coloryellow» и нажимаю «ПОИСК».
Но я не получаю результатов, потому что оператор «И» в операторе SQL неверен …
Какой оператор мне нужно использовать, чтобы мой оператор SQL дал мне два результата?

-1

Решение

$whereArr = Array();
if (isset($_POST["colorred"]) && $_POST["colorred"]==1) $whereArr[] = "red=1";
if (isset($_POST["colorblue"]) && $_POST["colorblue"]==1) $whereArr[] = "blue=1";
if (isset($_POST["colorgreen"]) && $_POST["colorgreen"]==1) $whereArr[] = "green=1";
if (isset($_POST["coloryellow"]) && $_POST["coloryellow"]==1) $whereArr[] = "yellow=1";
if (isset($_POST["colorblack"]) && $_POST["colorblack"]==1) $whereArr[] = "black=1";

$sqlStr = "SELECT * FROM favcolor WHERE " . implode(" AND ", $whereArr);

И тогда вы запускаете запрос

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]