Forum
Tipps
News
Menu-Icon

Onlinelexika wie "Wikipedia"

Ich wollte mal ein eigenes Onlinelexika - oder besser gesagt "Wörterbuch" einrichten, mit der Funktion (als eigentlicher Hauptbestandteil), dass man es selber ergänzen kann...

Als Scriptgrundlage fungiert ein normales Gästebuchscript per PHP (der Einfachheithalber sagen wir einfach mal dieses hier, wäre ja soweit schon fertig)

Das Design lässt sich per CSS ja noch verbessern, ist ja kein großes Problem.. WAS mir allerdings momentan Probleme bereitet ist FOLGENDES :

Die Begriffe, die der User eingibt, sollten anschließend in alphabetischer Ordnung ausgegeben werden, kann man das irgendwie per Javascript oder einem weiteren PHP-Script erreichen ? Ansätze dazu würden mir schon reichen..

Nochmal zum veranschaulichen :

Ich habe hier mal eine Abgeänderte Version hochgeladen, wie zu sehen ist, sind bereits zwei "Testeinträge" vorhanden..
Nun sollte aber "Aabeemick" VOR "Ebbelwoi" erscheinen, also Alphabetisch sortiert.... Funktioniert das dann überhaupt mit einem einfachen Textdokument oder muss man da dann ev. auf eine MySQL-Datenbank zugreifen ?

« Letzte Änderung: 07.05.05, 13:59:33 von Der olle Schwoebel »

Antworten zu Onlinelexika wie "Wikipedia":

Hi..

Also was du vor hast würd ich nicht mit Wikipedia vergleichen den das ist ne Enzyklopädie und du willst ja so wie es aus sieht nur ein wörterbuch erstellen.

Ich persönlich würde ja MySql bevorzugen da du da gleich bei der abfrae sortieren kannst. Aber selbst wenn du das alles über textdateien (welche wohl mit der zeit recht groß werden dürften) realisieren willst sollte das gehen.
Du solltest dafür einfach alle begriffe mit übersetzung in eine Array schreiben und dann z.B. mit dem befehl asort() sortieren (ob das jetzt der richtige befehl dafür ist sei dahin gestellt, da hab ich mich noch nicht drum gekümmert.)

Also meine empfehlung wäre, wenn du die möglichkeit dazu hast, auf eine mysql datenbank umzusteigen.

Gruß Jan

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Die Vergleichung mit Wikipedia war ja nur deshalb, weil der User das Wörterbuch - wie eben bei Wikipedia - selbst ergänzen und gegeb. verbessern kann..

Ich werde dann mal versuchen auf MySql "umzusteigen"

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ich habe mich zu diesem Thema auch mal ein wenig selber im Internet umgeschaut und habe eine Lösung zu meinem Problem gefunden. Und zwar ein fertiges Script, das genau DAS erledigt, was ich machen wollte
(Link zu dem Script - Artikel)

Allerdings habe ich jetzt ein Problem : Ich weiß nicht so recht, was für eine Programmiersprache dabei jetzt verwendet wurde, und ob das Script so schon fertig ist (dass man es gleich als Seite ins Netz stellen kann)


So eine "Mitgliederliste" soll nach der 2. Spalte sortiert werden :

Zitat
1|Walter|Helmut|2004.02.02|Deutschland|M
2|Meyer|Lisa|2003.12.28|Deutschland|W
3|Müller|Maximilian|2002.05.22|Schweiz|M
4|Lehmann|Hubert|2002.11.01|Oesterreich|M
5|Schulze|Stefanie|2004.01.04|Deutschland|W
6|Wolter|Willy|2002.06.09|Oesterreich|M
7|Thomas|Eva-Maria|2004.01.17|Schweiz|W
8|Schneyder|Jean|2001.09.04|Frankreich|M
9|Clerc|Pascale|2002.11.17|Frankreich|M
10|Benguerel|Sebastian|2003.08.10|Spanien|M
11|Carl|Johanna|2002.10.01|Deutschland|W

Und so schaut dazu der Code aus :
#!/usr/bin/perl

#Fehlerausgabe an Browser
use CGI::Carp qw(fatalsToBrowser);

print "Content-type: text/html\n\n";

# Datei auslesen
open (DATEI, "<namensliste.dat") or die "Kann namensliste.dat nicht oeffnen $!\n";
flock (DATEI, 2);
my @namen = <DATEI>;
close DATEI;

# Dateiinhalt sortieren nach Nachnamen
my @sortiertes_array = sort sortabc(@namen);

# Zeilenzahl festellen
my $anzahl = scalar(@sortiertes_array);

# Teilen durch 2
my $halb = int($anzahl / 2);

# Wenn 2 mal die Hälfte nicht $anzahl, 1 addieren
if (2 * $halb < $anzahl) {
$halb += 1;
}
# Tabellenkopf
print qq~
<table cellspacing="2" cellpadding="2" border="1">
~;

# Zähler (optional)
my $halbcount1 = 0;
my $halbcount2 = $halb;

foreach my $z (0..$halb-1) {
# Gesamtarray in zu Teilarrays (@erste - @zweite) zuweisen
my @erste = @sortiertes_array[0...$halb-1];
my @erste_spalte = split(/\|/, $erste[$z]);

my @zweite = @sortiertes_array[$halb...$anzahl-1];
my @zweite_spalte = split(/\|/, $zweite[$z]);

$halbcount1++;
$halbcount2++;
# Ausgabe
if ($halbcount1 <= $halb && $zweite_spalte[1] ne '') {
print qq~<tr>
<td>$halbcount1</td>
<td><b>$erste_spalte[1]</b> $erste_spalte[2]</td>
<td>$halbcount2</td>
<td><b>$zweite_spalte[1]</b> $zweite_spalte[2]</td>
</tr>
~;
}

elsif ($zweite_spalte[1] eq '') {
print qq~<tr>
<td>$halbcount1</td>
<td><b>$erste_spalte[1]</b> $erste_spalte[2]</td>
<td> </td>
<td> </td>
</tr>
~;
}
}

print "</table>";


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
# Sortiersubroutine
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
sub sortabc {

@atopkg = split(/\|/,$a);
@btopkg = split(/\|/,$b);
$atopkg[1] cmp $btopkg[1];
}

Oben im Script steht irgendwas von Perl ? Kann man das im Internet dazu anwenden ? Und wo definiere ich, nach welcher Spalte sortiert werden soll ?

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ja, das sieht aus wie Perl. Blöderweise kenne ich mich mit der Syntax überhaupt nicht aus. So wie es aussieht, liegt der Schlüssel zu Deiner Frage aber in der Subroutine:

sub sortabc {

@atopkg = split(/\|/,$a);
@btopkg = split(/\|/,$b);
$atopkg[1] cmp $btopkg[1];
}
So wie es aussieht wird mit dem Split-Befehl der Teil des Eintrages bin zum ersten "|" (und / \ ?!) rausgefiltert, so dass immer nur der Teil rauskommt, der ganz vorne steht (also hier der Name).
Wenn Du also nach anderen Sachen sortieren willst, musst Du wohl dieses Splitten in ein Aufteilen nach Kategorien und Auswählen der gewünschten abwandeln.
Aber wie gesagt: Kein Plan von Perl.

Gruß Spawn

PS: Das Prinzip des Auslesens ist aber meines Errachtens das Gleiche wie im PHP-Script vom Gästebuch (Trennzeichen und so). Da könnte ich schon eher mitreden  ;D

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Lässt sich Perl denn im Internet anwenden ? Und was für Vorraussetzungen brauche ich dafür ?

Und im Moment die wichtigste Frage : Was fang ich jetzt mit dem Quellcode an ? Muss ich den in irgendeine Datei reinschreiben oder brauch ich einen Perl-Editor dafür ... ?? Und könnte man das Script auch in PHP "übersetzen" ?


« suche php skript...login von computerhilfen.de »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Grundstrich
Der Begriff des Grundstrichs im Bereich der Typografie, bezeichnet den senkrechten Strich der Buchstaben. Bei Schriftarten mit variabler Strichstärke, wie zum Beispi...

Haarstrich
Der Begriff Haarstrich stammt aus dem Bereich der Typographie. Bei Schriften, wie zum Beispiel der Antiquaschrift mit unterschiedlichen Strichstärken, wird zwischen ...

PHP
PHP steht für Personal Home Page und ist eine Skriptsprache die meist verwendet wird zur dynamischen Erzeugen von Internetseiten. PHP zeichnet sich durch die weite D...