Suchfunktion / Datenbank-Auslese

Biber90

Mitglied
Hallo

Ich habe eine Suchfunktion für meine Website gemacht....
Ich habe mir das so in der Form überlegt

Code:
<form action="ergebnis.php" method="get">

<p>Suchfeld:<br>
   <SELECT NAME="suchfeld">
   <OPTION value='db_user'>ID
   <OPTION value='name'>Name
   <OPTION value='vorname'>Vorname
   <OPTION value='wohnort'>Wohnort
   <OPTION value='nickname'>Nickname
</SELECT></p>


<p>Suchbegriff:<br>
<INPUT TYPE="text" MAXLENGTH="30" SIZE="22" NAME="suchbegriff"></p></TD>

<BR>
<INPUT TYPE="submit" VALUE="Suchen" METHOD="post">
<INPUT TYPE="reset" VALUE="Eingaben löschen"></p>

</form>

Ich habe die get-methode gewählt um die variablen über den link zu übergeben....oder is post besser? Naja...das Problem ist die Ausgabe denn

PHP:
<?php
$suchfeld=$_GET['suchfeld'];
$suchbegriff=$_GET["suchbegriff"];

$result = query("SELECT * FROM profil WHERE $suchfeld = $suchbegriff");
$anzahl = mysql_num_rows($result);
 while($row = mysql_fetch_array($result)) {

?>

kann natürlich nicht funktionieren wenn ich mehr als einen Treffer habe.....anstatt WHERE ORDER BY zu schreiben geht aber auch nich......
wie kann ich es anders machen?
vielleicht eine if-abfrage? ich weiß es nich....
 
Sorry, ich habe deine Frage nicht ganz verstanden.
Wo genau ist dein Problem?
Was möchtest du erreichen?
Und wie ist der derzeitige Stand?

<Edit>
Ist query() eine eigene Funktion. Wenn nein, bitte in mysql_query ändern.
</Edit>
 
Query ist eine Funktion :

function query($sql) {
$result = mysql_query($sql);
return $result;

Mein Problem....Sagen wir ich suche in der Datenbank Profil nach dem Ort ABC
und es gibt 10 personen, die in dem ort wohnen.....dann funktioniert mein Script nicht, weil es ja mit WHERE ausließt oder nicht?....Solange es nur einen Treffer gibt klappt alles <<--das ist mein problem
 
Wie geht es denn nach dem
PHP:
<?php
$suchfeld=$_GET['suchfeld'];
$suchbegriff=$_GET["suchbegriff"];

$result = query("SELECT * FROM profil WHERE $suchfeld = $suchbegriff");
$anzahl = mysql_num_rows($result);
 while($row = mysql_fetch_array($result)) {

?>
weiter?
 
<center>
<table border="0" width="80%" id="table11">
<?php
$suchfeld=$_GET['suchfeld'];
$suchbegriff=$_GET["suchbegriff"];

$result = query("SELECT * FROM profil WHERE $suchfeld = $suchbegriff");
$anzahl = mysql_num_rows($result);
while($row = mysql_fetch_array($result)) {

?>

<tr>
<td><? echo $row[db_user]; ?></td>
<td><? echo $row[name]; ?></td>
<td><? echo $row[vorname]; ?></td>
u.s.w.
</tr>

<?php
} <<--ende der while-schleife
?>
</table>

</center>

Halt Ausgabe in der Tabelle
 
Ich würde sagen WHERE und ORDER BY stören sich nicht gegeseitig.
SQL:
SELECT * FROM `table` WHERE `land` LIKE '%de%' ORDER BY `name` ASC
Bitte achte auf die ` bei Spalten und Tabelle und ' bei Werten.
 
.........und ich zerbrech mir den kopf.....

Ich hatte nur das LIKE vergessen weil ich nämlich auch dachte, dass sich ORDER BY und WHERE eigentlich ja nicht stören dürften......

Danke für deine Hilfe
 
Aber LIKE ist nicht zwingend notwendig
SQL:
SELECT * FROM `table` WHERE `land` = 'de' ORDER BY `name` ASC
 
Zurück