Beitrag von Hobbybrauer (9 Beiträge) am Donnerstag, 15.Mai.2008, 19:08.
Anklickliste aus Datenbank erstellen
Ich bin neu auf dem Gebiet der Datenbanken, habe aber rudimentere html-Kenntnisse.
Im Prinzip will ich folgendes haben:
Ein Nutzer legt ein Rezept in der Datenbank ab.
Man sieht auf der Hauptseite nur die Namen der Rezepte.
Klickt man auf einen Namen erscheint das passende Rezept.
Wie kann ich das realisieren? Ist es auch möglich die Rezepte in verschiedene Kategorien zusammenzufassen? Wenn also ein Benutzer "Kuchen" irgendwo eingibt, dass dann das Rezept in der Rubrik "Kuchen" auftaucht?
Antworten
Beitrag von Sander (8133 Beiträge) am Donnerstag, 15.Mai.2008, 23:08.
Re: Anklickliste aus Datenbank erstellen
Antworten
Beitrag von Hobbybrauer (9 Beiträge) am Freitag, 16.Mai.2008, 15:10.
Re: Re: Anklickliste aus Datenbank erstellen
Ich habe mittlerweile herrausgefudnen wie man eine solche Liste erstellt. Leider funktioniert die Suche suboptimal. Ich möchte gerne Braurezepte in die Datenbank einpflegen und habe auch schon ein Rezept eingegeben. Der Name lautet "Föhrener Landbier". Er findet diesen Eintrag nur, wenn ich Föhren eingebe nicht jedoch wenn ich Bier oder Landbier eingebe!
Was tun?
Antworten
Beitrag von sebastian (533 Beiträge) am Freitag, 16.Mai.2008, 15:34.
Re: Re: Re: Anklickliste aus Datenbank erstellen
Antworten
Beitrag von Claus (4645 Beiträge) am Freitag, 16.Mai.2008, 16:03.
Re: Re: Re: Anklickliste aus Datenbank erstellen
bei Sebastians Link handelt es sich um die Volltextsuche, die nur bei Miete/Lizenz eingesetzt werden kann.
Wenn Du mit der kostenlosen Version von baseportal "üben" möchtest, kann Du das auch über die Perl-Funktion "index" machen.
In der Bibliothek (den Link findest Du nach dem Login bei bp) gibt es dafür 2 Beispiele von Harald Fehde:
Eine erweiterte Volltext-Suche mit Ausgabe der markierten Treffer von H.Fehde am 14.12.2001, 22:17 (177)
Eine Volltext-Suche mit der Perl-Funktion [index] von H.Fehde am 7.12.2001, 15:33 (147)
generell findest Du eine sehr gute Anleitung bei selfhtml:
http://de.selfhtml.org/perl/funktionen/zeichenketten.htm#index
einige Befehle sind bei baseportal allerdings anders, z.B. statt "print" schreibt man bei den baseportal-Scripten "out".
siehe Dokumentation von baseportal:
http://doku.baseportal.de/93.html
hth
Gruesse
Claus
Antworten
Beitrag von Hobbybrauer (9 Beiträge) am Samstag, 17.Mai.2008, 11:51.
Re: Re: Re: Re: Anklickliste aus Datenbank erstellen
Ich habe in der Bibliothek eine Suchfunktion gefunden. Diese funktioniert aber auch nicht richtig. Man muss Groß- und Kleinschreibung beachten. Beispiel:
Bezeichnung: Föhrener Landbier
Die Suche nach "Bier" gibt kein Ergebnis, aber die Suche nach "bier" schon!
Wie kann ich das abstellen? Ich möchte das die Groß-und Kleinschreibung ignoriert wird!
Antworten
Beitrag von sebastian (533 Beiträge) am Samstag, 17.Mai.2008, 12:01.
Re: Re: Re: Re: Re: Anklickliste aus Datenbank erstellen
Operator = Bestimmt die Art der Übereinstimmung:
Operator Bedeutung Möglicher Treffer bei Suche nach "leben"
~~ Suche irgendwo im Text; Ignoriere Gross/Klein-Schreibung ES WAR SEHR BELEBEND!
~= Suche Wortanfang; Ignoriere Gross/Klein Diese Lebendigkeit!
== Suche exaktes Wort; Ignoriere Gross/Klein Das Leben ist schön.
~~! Suche irgendwo im Text; Beachte Gross/Klein-Schreibung Das muss man erleben!
~=! Suche Wortanfang; Beachte Gross/Klein Er ist sehr lebending.
==! Suche exaktes Wort; Beachte Gross/Klein Wie kann man so leben?
Antworten
Beitrag von Hobbybrauer (9 Beiträge) am Samstag, 17.Mai.2008, 12:33.
Re: Re: Re: Re: Re: Re: Anklickliste aus Datenbank erstellen
Ja, das hatte ich auch schon gefunden. Nur weiß ich nicht wo ich diese Operatoren hinschreiben muss. Sorry, bin totaler Anfänger! Trotzdem vielen Dank für die geduldige Hilfe!
Antworten
Beitrag von sebastian (533 Beiträge) am Samstag, 17.Mai.2008, 12:39.
Re: Re: Re: Re: Re: Re: Re: Anklickliste aus Datenbank erstellen
dann wäre es mal nicht schlecht deine quellcode zu posten, oder ?
Antworten
Beitrag von Hobbybrauer (9 Beiträge) am Samstag, 17.Mai.2008, 14:24.
Re: Re: Re: Re: Re: Re: Re: Re: Anklickliste aus Datenbank erstellen
Bitte sehr:
<html><head><title><span class="Bierrezepte"></span></title>
<do action=all list=list Bezeichnung localparams=+ ,Schüttung,Hefe,Bitterung,Maischen,Geschmacksprofil db=/Hobbybrauer/Bierrezepte range^=0,5 sort=- searchfields=Bezeichnung listfields=Bezeichnung allfields=Bezeichnung,Schüttung,Hefe,Bitterung,Maischen,Geschmacksprofil formfields=Bezeichnung,Schüttung,Hefe,Bitterung,Maischen,Geschmacksprofil showamount=all,sel selectbrowse=top buttonbrowse=top pagebrowse=top indexbrowse=top listtype=list language=de detail=link search=no input=link>
<form action="baseportal.pl?htx=$htx" method="post" enctype="multipart/form-data">
<table border="0" cellpadding="0" cellspacing="0" width="100">
<tr>
<td><div align="center"><center><p>$db-Suche</td></tr>
<tr align="center">
<td><font size="2" face="arial,helvetica">
<input type="text" name="Such=" size="15" value></font></td></tr>
<tr align="center">
<td><font size="2" face="arial,helvetica">
<div align="center"><center><p></font>
<input type="submit" value="Suchen"></td></tr>
</table>
</form>
<perl>
if ($Such ne "") #---------------------falls eine Suchanfrage gestartet wurde
#---------------- und das Eingabefeld [Such] nicht leer ist
{
out "Suchbegriff =<b>[$Such]</b><br>";
my $i=0;
get "Id==*";
while(get_next)
#----------- gesucht wird in dem Feld [Text] -------------------------------
{if ((index($Bezeichnung,$Such~~) >= 0 ))
{$i++;
$Daten[$i]="$i.<a href='http://baseportal.de/cgi-bin/baseportal.pl?
htx=$htx&Id==$_id'>$Bezeichnung</a><br>";
;
#----------- als Link wird das Feld [Titel] ausgegeben ----------------------
}
my $y=1;
while ($y < $i+1){out $Daten[$y];
$y++ ;}
}
"";
</perl>
Ein paar Sachen habe ich aus der Dokumentation kopiert und entsprechend verändert.
Antworten
Beitrag von richard (1187 Beiträge) am Sonntag, 18.Mai.2008, 08:44. WWW: posaunenchor-rhoden.de
Re: Re: Re: Re: Re: Re: Re: Re: Re: Anklickliste aus Datenbank erstellen
Du könntest alles in Klein-(Groß-)buchstaen umwandeln und das dann vergleichen. Schau mal in einer Perl-Doku unter "lc" nach und
tausche das:
{if ((index($Bezeichnung,$Such~~) >= 0 ))
gegen das:
{if ((index(lc($Bezeichnung),lc($Such)) >= 0 ))
oder das:
$Bezeichnung = lc($Bezeichnung);
$Such = lc($Such);
{if ((index($Bezeichnung,$Such) >= 0 ))
Alternativ zwischen "<perl>" und "</perl>" sowas wie:
if ($Such ne "")
{
out "Suchbegriff =<b>[$Such]</b><br>";
my $i=0;
get "Bezeichnung ~~ $Such";
while(get_next)
{
$i++;
out "<a href='http://baseportal.de/cgi-bin/baseportal.pl?htx=$htx&Id==$_id'>$Bezeichnung</a><br>";
}
out "Treffer: $i<br>";
}
Zwischen Umlauten und Perl/bp besteht allerdings eine problematische Beziehung. Alles ungetestet.
Antworten
Beitrag von Claus (4645 Beiträge) am Sonntag, 18.Mai.2008, 09:10.
Re: Re: Re: Re: Re: Re: Re: Re: Re: Anklickliste aus Datenbank erstellen
Antworten