Hallo,
ich habe eine Wortsucheskript bei der ich eine Mindestanzahl an anzugebenen Buchstaben voraussetzen möchte um die Abfrage zu entlasten.
Das Ganze kann man sich wie Kreuzworträtsel vorstellen bei dem der User die Anzahl der Buchstaben des Lösungswortes auswählt und die ihm bekannten Buchstaben einträgt und nach sämtlichen Wörtern sucht, die diese Buchstaben an angegebener Position enthalten. Gibt der User nur die Anzahl der Buchstaben an, aber keine bekannten Buchstaben, werden alle Wörter aufgelistet. Dadurch ist die Abfrage natürlich größer und meist unnötig.
Nun möchte ich solche Anfragen vermeiden, indem eine Mindestangabe an Buchstaben voraussgesetzt wird. Wie setzte ich das am besten um?
Hier Auszüge aus dem Quellcode:
Bestimmung der Länge des Wortes bzw. der Anzahl der Buchstaben:
Dementsprechende Eingabefelder für die Buchstaben:
(Hier sollten in mindestens zwei Felder Buchstaben eingetragen werden.)
Würde mich über hilfreiche Tips freuen.
Danke & Gruß,
lazo
ich habe eine Wortsucheskript bei der ich eine Mindestanzahl an anzugebenen Buchstaben voraussetzen möchte um die Abfrage zu entlasten.
Das Ganze kann man sich wie Kreuzworträtsel vorstellen bei dem der User die Anzahl der Buchstaben des Lösungswortes auswählt und die ihm bekannten Buchstaben einträgt und nach sämtlichen Wörtern sucht, die diese Buchstaben an angegebener Position enthalten. Gibt der User nur die Anzahl der Buchstaben an, aber keine bekannten Buchstaben, werden alle Wörter aufgelistet. Dadurch ist die Abfrage natürlich größer und meist unnötig.
Nun möchte ich solche Anfragen vermeiden, indem eine Mindestangabe an Buchstaben voraussgesetzt wird. Wie setzte ich das am besten um?
Hier Auszüge aus dem Quellcode:
Bestimmung der Länge des Wortes bzw. der Anzahl der Buchstaben:
PHP-Code:
<?php
if (isset($_GET['antwort_l'])) {
$sel = $_GET['antwort_l'];
} else {
$sel = -1;
}
$out = '<option value="-1" '.(($sel == -1) ? ' selected="selected"' : '').'>Anzahl nicht bekannt</option>';
for($i=1; $i<=30; $i++) {
if ($sel == $i) $out .= '<option value="'.$i.'" selected="selected">'.$i.'</option>';
else $out .= '<option value="'.$i.'">'.$i.'</option>';
}
echo $out;
?>
(Hier sollten in mindestens zwei Felder Buchstaben eingetragen werden.)
PHP-Code:
<?php
if (isset($_GET['antwort_l'])) {
$len = $_GET['antwort_l'];
echo '<input name="antwort_l" type="hidden" value="'.$_GET['antwort_l'].'">';
} else {
$len = -1;
echo '<input name="antwort_l" type="hidden" value="-1">';
}
if ($len > 10) $len = 10;
for($i=0; $i<$len; $i++) {
echo '<input onkeyup="next_focus(this, event)" name=antwort['.($i+1).'] value="'.(isset($_GET['antwort'][$i+1]) ? $_GET['antwort'][$i+1] : '').'" size="1" maxlength="1" style="color: #777; width: 40px; font-size: 16px; font-family: Verdana, sans-serif;"> ';
}
?>
Danke & Gruß,
lazo
Kommentar