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 Augenzwinkern
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 Augenzwinkern



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 großes Grinsen

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 großes Grinsen

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 großes Grinsen
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