Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Hilfe beim Suchscript
Frage
Hallo, leider habe ich noch nicht viel Erfahrung mit PHP. Hier poste ich einfach mal ein Suchscript. Es beinhaltet jedoch ein Feld "Order by:" welches ich nicht angezeigt haben möchte.
kann bitte jemand mal schauen?:
<?
echo "<form action=$PHP_SELF><table border=0 cellpadding=0 cellspacing=0>";
$a = explode('&', $QUERY_STRING);
$i = 0;
while ($i < count($a)) {
$b = split('=', $a[$i]);
$nameofit = htmlspecialchars(urldecode($b[0]));
$valueofit = htmlspecialchars(urldecode($b[1]));
$nameofit2 = "{$nameofit}=";
$valueofit2 = "{$valueofit}&";
if ($nameofit=="page") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="category") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="id") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="ID") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="singleitem") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="search") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="id2") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="rate") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="rating") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="downloadid") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="column") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="keywords") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="ordercolumn") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="order") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="display") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="name") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="email") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="comment") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="getthepage") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="rowstart") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="database_database") {$nameofit2 = ""; $valueofit2 = "";}
$query .="{$nameofit2}{$valueofit2}";
$i++;
}
echo "<input type=hidden name=page value=search>";
echo "<input type=hidden name=database_database value=$database_database>";
echo "<tr><td><font size=2>Suche:</td><td>";
echo "<select size=1 name=ordercolumn>";
$fields = mysql_query("select * from ezdatabase_{$database_database}_fields");
while ($r2 = mysql_fetch_array($fields)) {
$id2 = $r2["ID"];
$type = $r2["type"];
$name = $r2["name"];
if ($type=="text" or $type=="longtext") {echo "<option value=\"{$id2}{$type}\">$name</option>";}
if ($type=="file") {echo "<option value=\"{$id2}{$type}\">$name (file name)</option>";}
if ($type=="image") {echo "<option value=\"{$id2}{$type}\">$name (image name)</option>";}
}
echo "</select> </td></tr>";
// like
echo "<tr><td><font size=2>Suchwort:</td><td><input type=text name=keywords></td></tr>";
echo "<select name=category size=1>";
$fields = mysql_query("select * from ezdatabase_{$database_database}_category");
while ($r = mysql_fetch_array($fields)) {
$id = $r["ID"];
$name = $r["name"];
echo "<option value=\"$id\">$name</option>";
}
echo "</select> ";
echo "</td></tr>";
echo "<tr><td>Order by:</td>";
echo "<td><select size=1 name=column>";
$fields = mysql_query("select * from ezdatabase_{$database_database}_fields");
while ($r2 = mysql_fetch_array($fields)) {
$id2 = $r2["ID"];
$type = $r2["type"];
$name = $r2["name"];
if ($type=="text" or $type=="longtext") {echo "<option value=\"{$id2}{$type}\">$name</option>";}
if ($type=="file") {echo "<option value=\"{$id2}{$type}\">$name (file name)</option>";}
if ($type=="image") {echo "<option value=\"{$id2}{$type}\">$name (image name)</option>";}
}
echo "<tr><td> </td><td><input type=submit name=search value=Suche></td></tr></table></form>";
?>
Vielen Dank!
Antwort 1 von javagruppe.de
Würde dir gern helfen brauche aber eine konkrete Frage oder eine Problembeschreibung.
Gruß
Jan
------------
www.javagruppe.de
Gruß
Jan
------------
www.javagruppe.de
Antwort 2 von Nessus
Ähm......
Dann streiche doch den betreffenden Teil einfach....
Bzw. tue ihn mal auskommentieren.
IMHO ist es besser wenn Dir da niemand hilft, so lernst Du das Script zu verstehen.
Ist nur ein gutgemeinter Rat, da ich anhand deines Nick`s annehme das du die Sprache lernen willst und die Aufgabe ist nicht sonderlich schwer, Du mußt lediglich die einzelnen Programmabläufe verstehen.
Nessus
Dann streiche doch den betreffenden Teil einfach....
Bzw. tue ihn mal auskommentieren.
IMHO ist es besser wenn Dir da niemand hilft, so lernst Du das Script zu verstehen.
Ist nur ein gutgemeinter Rat, da ich anhand deines Nick`s annehme das du die Sprache lernen willst und die Aufgabe ist nicht sonderlich schwer, Du mußt lediglich die einzelnen Programmabläufe verstehen.
Nessus
Antwort 3 von Micha_php_beginner
naja, ich habe schon einige stunden vor dem script verbracht. wenn ich die betreffenden teile rausnehmen läuft das script nicht mehr. und ich bekomme einen fehler.
ich möchte eine volltextsuche haben, bzw. eine suche mit selektion des kategorie (name, strasse, ort)
es ist eine suchabfrage zu einem adressbuch.
ich möchte eine volltextsuche haben, bzw. eine suche mit selektion des kategorie (name, strasse, ort)
es ist eine suchabfrage zu einem adressbuch.
Antwort 4 von Nessus
Hi,
schaue mal hier, das Script ist einfacher...
https://supportnet.de/discussion/listmessages.asp?AutoID=137679
Nessus
schaue mal hier, das Script ist einfacher...
https://supportnet.de/discussion/listmessages.asp?AutoID=137679
Nessus
Antwort 5 von Nessus
Und was passiert, wenn Du den Block einfach mal auskommentierst?
Nur so als Idee.
Nessus
echo "<tr><td>Order by:</td>";
echo "<td><select size=1 name=column>";
$fields = mysql_query("select * from ezdatabase_{$database_database}_fields");
while ($r2 = mysql_fetch_array($fields)) {
$id2 = $r2["ID"];
$type = $r2["type"];
$name = $r2["name"];
if ($type=="text" or $type=="longtext") {echo "<option value=\"{$id2}{$type}\">$name</option>";}
if ($type=="file") {echo "<option value=\"{$id2}{$type}\">$name (file name)</option>";}
if ($type=="image") {echo "<option value=\"{$id2}{$type}\">$name (image name)</option>";}
Nur so als Idee.
Nessus
Antwort 6 von Micha_php_beginner
ich würde gerne die "Order by:" Abfrage weghaben. wenn ich die jedoch entferne läuft die suche nicht mehr.
auch wundert mich das "name=ordercolumn" und "name=column" die gleichen variablen hat, also dürfte doch eine abfrage überflüssig sein, welche sie jedoch offensichtlich nicht ist.
need help!!!
danke euch.
auch wundert mich das "name=ordercolumn" und "name=column" die gleichen variablen hat, also dürfte doch eine abfrage überflüssig sein, welche sie jedoch offensichtlich nicht ist.
need help!!!
danke euch.
Antwort 7 von Micha_php_beginner
wenn ich das auskommentiere bekomme ich nach der suchabfrage folgende fehler:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
und
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
und
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Antwort 8 von Nessus
Hast Du Antwort 4 und 5 überhaupt ausprobiert?
Wenn Du den Block entfernst was kommt für ein Fehler?
Nessus
Wenn Du den Block entfernst was kommt für ein Fehler?
Nessus
Antwort 9 von Micha_php_beginner
es würde mir auch reichen wenn die "order by" abfrage nur ausgeblendet wird, wie bei "type=hidden" was aber bei mir nicht funktioniert.
Antwort 10 von Micha_php_beginner
ja, zu 5 ist die antwort 7.
die 4 habe ich mir angesehen, und probiere damit etwas rum, ich weis nur nicht wie ich die ausgabe in meinem template einbinde. da müsste ich doch basteln.
schön wäre es wenn man das vorhandene script umschreiben könnte, denn bis auf die "order by" abfrage läuft das richtig gut.
die 4 habe ich mir angesehen, und probiere damit etwas rum, ich weis nur nicht wie ich die ausgabe in meinem template einbinde. da müsste ich doch basteln.
schön wäre es wenn man das vorhandene script umschreiben könnte, denn bis auf die "order by" abfrage läuft das richtig gut.
Antwort 11 von Nessus
Quick&Dirty:
HTH
Nessus
PS: Habe echt null Bock den Code komplett durchzugehen, ich nehme aber auch nicht an, das dieses Script besonderst Zeitkritisch ist ;-)
<?
echo "<form action=$PHP_SELF><table border=0 cellpadding=0 cellspacing=0>";
$a = explode('&', $QUERY_STRING);
$i = 0;
while ($i < count($a)) {
$b = split('=', $a[$i]);
$nameofit = htmlspecialchars(urldecode($b[0]));
$valueofit = htmlspecialchars(urldecode($b[1]));
$nameofit2 = "{$nameofit}=";
$valueofit2 = "{$valueofit}&";
if ($nameofit=="page") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="category") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="id") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="ID") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="singleitem") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="search") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="id2") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="rate") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="rating") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="downloadid") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="column") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="keywords") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="ordercolumn") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="order") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="display") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="name") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="email") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="comment") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="getthepage") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="rowstart") {$nameofit2 = ""; $valueofit2 = "";}
if ($nameofit=="database_database") {$nameofit2 = ""; $valueofit2 = "";}
$query .="{$nameofit2}{$valueofit2}";
$i++;
}
echo "<input type=hidden name=page value=search>";
echo "<input type=hidden name=database_database value=$database_database>";
echo "<tr><td><font size=2>Suche:</td><td>";
echo "<select size=1 name=ordercolumn>";
$fields = mysql_query("select * from ezdatabase_{$database_database}_fields");
while ($r2 = mysql_fetch_array($fields)) {
$id2 = $r2["ID"];
$type = $r2["type"];
$name = $r2["name"];
if ($type=="text" or $type=="longtext") {echo "<option value=\"{$id2}{$type}\">$name</option>";}
if ($type=="file") {echo "<option value=\"{$id2}{$type}\">$name (file name)</option>";}
if ($type=="image") {echo "<option value=\"{$id2}{$type}\">$name (image name)</option>";}
}
echo "</select> </td></tr>";
// like
echo "<tr><td><font size=2>Suchwort:</td><td><input type=text name=keywords></td></tr>";
echo "<select name=category size=1>";
$fields = mysql_query("select * from ezdatabase_{$database_database}_category");
while ($r = mysql_fetch_array($fields)) {
$id = $r["ID"];
$name = $r["name"];
echo "<option value=\"$id\">$name</option>";
}
echo "</select> ";
echo "</td></tr>";
//echo "<tr><td>Order by:</td>";
//echo "<td><select size=1 name=column>";
$fields = mysql_query("select * from ezdatabase_{$database_database}_fields");
while ($r2 = mysql_fetch_array($fields)) {
$id2 = $r2["ID"];
$type = $r2["type"];
$name = $r2["name"];
//if ($type=="text" or $type=="longtext") {echo "<option value=\"{$id2}{$type}\">$name</option>";}
//if ($type=="file") {echo "<option value=\"{$id2}{$type}\">$name (file name)</option>";}
//if ($type=="image") {echo "<option value=\"{$id2}{$type}\">$name (image name)</option>";}
}
echo "<tr><td> </td><td><input type=submit name=search value=Suche></td></tr></table></form>";
?>
HTH
Nessus
PS: Habe echt null Bock den Code komplett durchzugehen, ich nehme aber auch nicht an, das dieses Script besonderst Zeitkritisch ist ;-)

