Supportnet Computer
Planet of Tech

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

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

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.

Antwort 4 von Nessus

Hi,

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?


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.

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



Antwort 8 von Nessus

Hast Du Antwort 4 und 5 überhaupt ausprobiert?
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.

Antwort 11 von Nessus

Quick&Dirty:


<?
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 ;-)