SammyLG
hallu,
hab für ne Homepage ne Suche gemacht bzw einen alten Code dafür etwas umgeschrieben.
Bei der Suche werden Angaben wie Haarfarbe, Haarlänge, Alter und sowas gemacht.
Dann wird eben in der DB nach Einträgen gesucht, die in allen Angaben übereinstimmen. Bis jetzt ist meine Suche soweit, dass man nur nach einer Angabe suchen kann (in dem Fall Haarfarbe).
Also wäre es hilfreich zu wissen, wie man das schreiben kann und wie das aussehen sollte, wenn man auch als Angabe "Keine Angabe" machen kann und die Suche eben bei den Kategorien keine Übereinstimmung braucht.
Öhöö etwas umständlich ausgedrückt, hier der Code:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
|
<form action="<?php echo $_SERVER[PHP_SELF]; ?>" method="post">
<br>
Haarfarbe <input type="text" name="suche"><br>
Haarlänge <input type="text" name="haarlange"><br>
<input type="submit" name="send" value="Suchen">
</form>
<?php
if (isset($_POST['send'])) {
$suche = $_POST[suche];
$haarlange = $_POST[haarlange];
$sql_select = "SELECT * FROM `charas` WHERE `haare` LIKE '%$suche%'";
$ergebnis = mysql_query($sql_select);
while ($row = mysql_fetch_assoc($ergebnis)) {
$id = $row['id'];
$titel = $row['name'];
$serie = $row['serie'];
echo "$titel aus $serie <br>";
echo "<a target=main href=charakter.php?id=$id>mehr Infos</a>";
}
}
?> |
|
für Hilfe bin ich dankbar, ist total ungewohnt nach ein paar Jahren php-Freiheit sich mal wieder dranzusetzen.
lg, Lilly
Black Katrin
meine suchfunktion läuft in dem wenn "keine angabe" gewählt wird in der variable nichts übertragen wird. du hättest dann sozusagen zB $augen="";
wenn du das dann abfragst mit augen LIKE '%$augen%'
werden alle augenfarben als "richtig" gewertet.
SammyLG
Okay danke, damit wäre das dann schon mal gelöst
Jetzt nur noch das andere Problem, kann ich das noch bei dem Select * from mit reinmachen oder brauch ich dafür wieder neue if-Klammer?
Black Katrin
beim gleichen, bei mir stehen im selben select glaubs 6 bedingungen wenn ich mich richtig erinnere
SammyLG
muss dann irgendwie AND dazwischen oder wie? XD Ich hab sowas noch nie gemacht, tut mir Leid wenn ich mich dumm anstelle.
Black Katrin
augen LIKE '%$augen%' AND haare LIKE '%$haare%'
SammyLG
viiielen Dank, damit ist mein Problem dann auch gelöst
aber XDD (ich nerve weiter...)
wenns jetzt keine Übereinstimmung gibt, soll "Es gibt leider keine Übereinstimmung mit deinen Angaben" ausgegeben werden.
Ne If / Else Klammer muss rein, nur wie? XD
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
|
<form action="<?php echo $_SERVER[PHP_SELF]; ?>" method="post">
<br>
Haarfarbe <input type="text" name="suche"><br>
Haarlänge <input type="text" name="haarlange"><br>
<input type="submit" name="send" value="Suchen">
</form>
<?php
if (isset($_POST['send'])) {
$suche = $_POST[suche];
$haarlange = $_POST[haarlange];
$sql_select = "SELECT * FROM `charas` WHERE `haare` LIKE '%$suche%' AND `haare2` LIKE '%$haarlange%'";
$ergebnis = mysql_query($sql_select);
while ($row = mysql_fetch_assoc($ergebnis)) {
$id = $row['id'];
$titel = $row['name'];
$serie = $row['serie'];
echo "$titel aus $serie <br>";
echo "<a target=main href=charakter.php?id=$id>mehr Infos</a>";
}
}
if ($ergebnis == "") {
echo "Es gibt leider keine Übereinstimmungen mit deinen Angaben.";
}
?> |
|
SammyLG
hatte ich auch schon gemacht. Aber jetzt kommt ne Fehlermeldung
Parse error: syntax error, unexpected T_ELSE in /kunden/153609_65599/lilly/magic/suche.php on line 49
Zeile 49 ist die mit else
Vor allem aber fehlen da die Klammern, die müssen dann ja noch zugemacht werden. XDD
Black Katrin
da fehlen doch auch einige klammern oder nit?
ich hätte es so gemacht:
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
|
<form action="<?php echo $_SERVER[PHP_SELF]; ?>" method="post">
<br>
Haarfarbe <input type="text" name="suche"><br>
Haarlänge <input type="text" name="haarlange"><br>
<input type="submit" name="send" value="Suchen">
</form>
<?php
if (isset($_POST['send'])) {
$suche = $_POST[suche];
$haarlange = $_POST[haarlange];
$sql_select = "SELECT * FROM `charas` WHERE `haare` LIKE '%$suche%' AND `haare2` LIKE '%$haarlange%'";
$ergebnis = mysql_query($sql_select);
$zahl = mysql_num_rows($ergebnis);
if($zahl>="1"){
while ($row = mysql_fetch_assoc($ergebnis)) {
$id = $row['id'];
$titel = $row['name'];
$serie = $row['serie'];
echo "$titel aus $serie <br>";
echo "<a target=main href=charakter.php?id=$id>mehr Infos</a>";
}
}else{
echo "Es gibt leider keine Übereinstimmungen mit deinen Angaben.";
}
}
?> |
|
SammyLG
Parse error: syntax error, unexpected $end in /kunden/153609_65599/lilly/magic/suche.php on line 55
Angst o.Ô
Zeile 55 ist ?>
mom, ich muss noch den neuen Beitrag testen XD
zweites edit: Parse error: syntax error, unexpected T_ELSE in /kunden/153609_65599/lilly/magic/suche.php on line 49
Zeile 49 = die Zeile mit dem Else
Stelo
Die Klammer vor dem else schließt die While-Schleife und dann kommt ein else, das kann ja gar nicht funktionieren.
SammyLG
wenn man sie dahinter setzt kommt trotzdem ne Fehlermeldung XD
SammyLG
Danke Fischii,
habs jetzt mal so geschrieben
Parse error: syntax error, unexpected $end in /kunden/153609_65599/lilly/magic/suche.php on line 54
zeile 54 enthält nur "?>"
o.Ô
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
|
<?php
if (isset($_POST['send'])) {
$suche = $_POST[suche];
$haarlange = $_POST[haarlange];
$sql_select = "SELECT * FROM `charas` WHERE `haare` LIKE '%$suche%' AND `haare2` LIKE '%$haarlange%'";
$ergebnis = mysql_query($sql_select);
while ($row = mysql_fetch_assoc($ergebnis)) {
$id = $row['id'];
$titel = $row['name'];
$serie = $row['serie'];
echo "$titel aus $serie <br>";
echo "<a target=main href=charakter.php?id=$id>mehr Infos</a>";
$anzahl = count($id);
if ($anzahl > 0) {
echo "Keine Übereinstimmung";
}
}
?> |
|