Hallo,
ich bin mir nicht sicher ob ich hier richtig bin oder eher ins "relationelle Datenbanksysteme" Unterforum schreiben sollte - verzeiht sollte es hier im PHP Forum falsch sein.
Vorab - ich bin kein SQL Guru und tue mir seit einigen Stunden mit folgendem Sachverhalt ziemlich schwer.
Folgendes Szenario habe ich:
Tabelle: "favcolor" sieht so aus
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
Der HTML Code:
<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 (using 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."'
Nun zu meinem Problem.
Ich wähle zB. die gelbe Farbe in der Checkbox aus und drücke "Suchen". Nun hätte ich gerne die Ergebnisse angezeigt, wer die gelbe Farbe mag.
Aber ich erhalte keine Ergebnisse, aufgrund des "AND" Operators im SQL Statement.
Obwohl ja in der Tabelle 2 Datenzeilen betroffen sind.
Nun bin ich mit SQL nicht lange vertraut... welchen Operator müsste ich verwenden, bzw. wie müsste ich den SQL Statement umbauen damit das funktioniert?
Hoffe Ihr könnt mir ein paar Tipps und bedanke mich vorab
ich bin mir nicht sicher ob ich hier richtig bin oder eher ins "relationelle Datenbanksysteme" Unterforum schreiben sollte - verzeiht sollte es hier im PHP Forum falsch sein.
Vorab - ich bin kein SQL Guru und tue mir seit einigen Stunden mit folgendem Sachverhalt ziemlich schwer.
Folgendes Szenario habe ich:
Tabelle: "favcolor" sieht so aus
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
Der HTML Code:
<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 (using 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."'
Nun zu meinem Problem.
Ich wähle zB. die gelbe Farbe in der Checkbox aus und drücke "Suchen". Nun hätte ich gerne die Ergebnisse angezeigt, wer die gelbe Farbe mag.
Aber ich erhalte keine Ergebnisse, aufgrund des "AND" Operators im SQL Statement.
Obwohl ja in der Tabelle 2 Datenzeilen betroffen sind.
Nun bin ich mit SQL nicht lange vertraut... welchen Operator müsste ich verwenden, bzw. wie müsste ich den SQL Statement umbauen damit das funktioniert?
Hoffe Ihr könnt mir ein paar Tipps und bedanke mich vorab