|
#1
|
|||
|
|||
|
ich habe für meine wörterbuch zwei tabelle erstellt. 1. tabelle: ID - wortID - redewendungID - zwei mal wörter feld ![]() 2.tabelle: ID - bedeutungID - bedeutung ![]() ich wollte bei den gefundene wörter, wenn man darauf klickt den beduetung und wenn es beispiele gibt die auch ausgegeben haben.. weche sql befehl muss ich benutzen... bis jetzt sieht meine suche.php so aus: PHP Quellcode:
<?php
$suche = strip_tags($_POST["suche"]); $type= strip_tags($_POST["type"]); if ($suche == "") { $f = 1; } elseif (strlen($suche) < 1) { $f = 1; } else { echo "<div >"; $anfrage = "SELECT * FROM woerter WHERE TEXT LIKE '" . $suche . "%' ORDER BY TEXT ASC"; $ergebnis = mysql_query($anfrage); $anzahl = mysql_num_rows($ergebnis); if ($myrow = mysql_fetch_array($ergebnis)) { $f = 1; $cf = 0; if ($anzahl > 20) $get = 20; else $get = $anzahl; echo"<h2>"; do { $cf++; $TEXT = $myrow["TEXT"]; $TEXTl = strlen($myrow["TEXT"]); if ($TEXTl > 25) { $TEXT = substr($TEXT, 0, 25); $TEXT = $TEXT . "..."; } ?> <div style="margin:0px 0px 0px 0px"> <div class="smallfont" style="margin-bottom:2px"> <input type="button" value="<?php echo $myrow['TEXT'] ?>" style="cursor:pointer; border: 0px; background-color:transparent; color: #420000; font-weight:bold;" onclick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = '';this.innerTEXT = ''; this.value = '<?php echo $myrow['TEXT'] ?>'; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerTEXT = ''; this.value = '<?php echo $myrow['TEXT'] ?>'; }\"> </div> <div> <div style="display: none; margin: 0px; padding: 6px; background-image: url(scana.gif);"> <div > <?php // wie soll ich hier bedeutung und wenn es gibt beispiele ausgeben? ?> </div> </div> </div> </div> <?php $myrow = mysql_fetch_array($ergebnis); } while ($cf < $get); echo "</h2>"; } } ?> Code:
SELECT * FROM woerter,bedeutung WHERE woerter.ID = bedeutung.bedeutungID
danke voraus
|
|
#2
|
|||
|
|||
|
1.) sollten bei beiden tabellen einen identischen schlüssel haben (Primary key) womit man dann die beiden Tabellen joinen kann.
2.) dann formulierst du einfach deine abfrage...noch fragen? wenn ja dann posten
__________________
|
|
#3
|
|||
|
|||
|
1. tabelle schlüssel = ID
2. tabelle schlüssel = ANLAMID sind identisch wie kann ich die tabellen joinen? |
|
#4
|
|||
|
|||
|
__________________
Gary ============================= Schreie nach Besserem, bis du es auch erhältst. Das noch Bessere verabschiedet sich rechtzeitig vor deinem Lärm. © Martin Gerhard Reisenberg (*1949) |
|
#5
|
|||
|
|||
|
danke Gary, mit join hats geklappt...
aber jetzt wenn ich eine wort suche und diese wort hat mehrere bedeutung, dann wird soviel den wort ausgegeben.. |
|
#6
|
|||
|
|||
|
Das musst du jetzt bei der Ausgabe mit PHP regeln.
Also eine zusätzliche Variable definieren, in der du das aktuelle Wort speicherst und beim nächsten Schleifendurchlauf überprüfen, ob sich das Wort geändert hat.
__________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, dass er genug davon habe. René Descartes |
|
#7
|
|||
|
|||
|
kannst du mir ein beispiel geben..bin in php nicht so gut
|
|
#8
|
|||
|
|||
|
Vom Grundprinzip und ganz vereinfacht so:
PHP Quellcode:
<?php
$wort_aktuell=""; $sql=mysql_query("SELECT wort, bedeutung FROM tabelle"); while ($row=mysql_fetch_assoc($sql)) { if ($wort_aktuell!=$row['wort']) echo $row['wort']; echo $bedeutung; $wort_aktuell=$row['wort']; } ?>
__________________
Nichts auf der Welt ist so gerecht verteilt wie der Verstand. Denn jedermann ist überzeugt, dass er genug davon habe. René Descartes |
|
#9
|
|||
|
|||
|
so,hab mit GROUP BY es erledigt...und die beduetungen mit eine for schleife ausgegeben...aber die suche dauert paar minute...weil die suche mit ajax livesearch ist hat keine sinn...
oder is es besser von schnelligkeit ,wenn ich die daten von datenbank dynamisch xml datei erstelle und aus dem xml suche in 1. tabelle gibs 79204 daten und in 2. tabelle 209055 hier meine suche.php..vielleicht hab ich was überflüssig, den suche länger dauert.. PHP Quellcode:
<?php
$suche = strip_tags($_POST["suche"]); $type= strip_tags($_POST["type"]); if ($suche == "") { $f = 1; } elseif (strlen($suche) < 1) { $f = 1; } else { echo "<div >"; $abfrage = "SELECT * FROM kelime JOIN manasi ON kelime.ID=manasi.anlamID WHERE kelime.TEXT LIKE '" . $search . "%' AND kelime.DEYIMID='0' GROUP BY kelime.ID"; $ergebnis = mysql_query($anfrage); $anzahl = mysql_num_rows($ergebnis); if ($myrow = mysql_fetch_array($ergebnis)) { $f = 1; $cf = 0; if ($anzahl > 20) $get = 20; else $get = $anzahl; echo"<h2>"; do { $cf++; $TEXT = $myrow["TEXT"]; $TEXTl = strlen($myrow["TEXT"]); if ($TEXTl > 25) { $TEXT = substr($TEXT, 0, 25); $TEXT = $TEXT . "..."; } ?> <div style="margin:0px"> <div class="smallfont" style="margin-bottom:2px"> <input type="button" value="<?php echo $myrow['TEXT'] ?>" style="cursor:pointer; border: 0px; background-color:transparent; color: #420000; font-weight:bold;" onclick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = '';this.innerTEXT = ''; this.value = '<?php echo $myrow['TEXT'] ?>'; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerTEXT = ''; this.value = '<?php echo $myrow['TEXT'] ?>'; }\"> </div> <div> <div style="display: none; margin: 0px; padding: 6px; background-image: url(scana.gif);"> <div > <?php $abfrage1 = "SELECT manasi.aciklama FROM kelime JOIN manasi ON kelime.ID=manasi.anlamID WHERE kelime.TEXT LIKE '" . $TEXT . "' "; $ergebnis1 = mysql_query($abfrage1); $anzahl1 = mysql_num_rows($ergebnis1); for( $i=0; $i<=$sayi; $i++) { $myrow1 = mysql_fetch_array($ergebnis1); echo $myrow1['aciklama']." "; } ?> </div> </div> </div> </div> <?php $myrow = mysql_fetch_array($ergebnis); } while ($cf < $get); echo "</h2>"; } } ?> |
|
#10
|
|||
|
|||
|
__________________
Gary ============================= Schreie nach Besserem, bis du es auch erhältst. Das noch Bessere verabschiedet sich rechtzeitig vor deinem Lärm. © Martin Gerhard Reisenberg (*1949) |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
|
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| pspell - persönliches Wörterbuch | prosbaer | PHP | 4 | 24.08.2006 20:35 |
| Suche umfangreiches Script (Download, Upload, Suche etc.) | baerenwurm | Skriptsuche | 2 | 09.01.2006 16:10 |
| Texte in Eintrag ersetzen (Wörterbuch) | Frederik | PHP | 2 | 05.12.2005 14:01 |
| Datenbank für Wörterbuch | jensr | Datenbanken | 3 | 30.04.2005 13:54 |
| Suche in den Suchergebnissen (erweiterte Suche) | visionmaster | Datenbanken | 1 | 22.09.2004 12:36 |