Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- [PHP & MySQL] Suche mit php (https://www.gegen-bilderklau.net/thread.php?threadid=167366)
Geschrieben von SammyLG am 16.01.2010 um 21:54:
Suche mit php
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
Geschrieben von Black Katrin am 16.01.2010 um 21:58:
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.
Geschrieben von SammyLG am 16.01.2010 um 22:01:
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?
Geschrieben von Black Katrin am 16.01.2010 um 22:06:
beim gleichen, bei mir stehen im selben select glaubs 6 bedingungen wenn ich mich richtig erinnere
Geschrieben von SammyLG am 16.01.2010 um 22:19:
muss dann irgendwie AND dazwischen oder wie? XD Ich hab sowas noch nie gemacht, tut mir Leid wenn ich mich dumm anstelle.
Geschrieben von Black Katrin am 16.01.2010 um 22:20:
augen LIKE '%$augen%' AND haare LIKE '%$haare%'
Geschrieben von SammyLG am 17.01.2010 um 14:08:
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.";
}
?> |
|
Geschrieben von SammyLG am 17.01.2010 um 14:18:
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
Geschrieben von Black Katrin am 17.01.2010 um 14:22:
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.";
}
}
?> |
|
Geschrieben von SammyLG am 17.01.2010 um 14:26:
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
Geschrieben von Stelo am 17.01.2010 um 14:27:
Die Klammer vor dem else schließt die While-Schleife und dann kommt ein else, das kann ja gar nicht funktionieren.
Geschrieben von SammyLG am 19.01.2010 um 19:26:
wenn man sie dahinter setzt kommt trotzdem ne Fehlermeldung XD
Geschrieben von SammyLG am 26.01.2010 um 17:07:
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";
}
}
?> |
|
Forensoftware: Burning Board, entwickelt von WoltLab GmbH