Statistik |
Beiträge: 144.533 (Täglich: 19,19 )
Themen: 16.700
Mitglieder: 13.209
Neuestes Mitglied: zitronentee.
Ausl. d. letzten Minute: 956%
Ausl. d. letzten 5 Minuten: 914%
Ausl. d. letzten 15 Minuten: 788%
Aktulle Uhrzeit: 01:28
Freier Webspace: 4.04 TB
PHP-Version: 7.4.33
|
|
|
Suchwort entsteht durch Linkklick |
consch
Langschläferin
Dabei seit: 02.01.2008
Beiträge: 246
0 Filebase-Einträge
Alter: 43 Jahre
Herkunft: Berlin wBB-Version: wBB2.3
Mitglied bewerten
Level: 38 [?]
Erfahrungspunkte: 1.458.808
Nächster Level: 1.460.206
Themenstarter
|
|
Ja genau um die geht es auch ein wenig
Ich habe die Datei versucht einzubauen. In der beispiel.php würde ich das Wort "Programm" gern mit meinem Suchwort ($array[$x]) ersetzen. Dann soll einmal die search.php mit den Suchwörtern ($_POST["search"]) durchlaufen und wenn man danach auf ein Synonym klickt, dann soll es in der index.php automatisch im Suchwortfeld erscheinen. Damit man damit auch noch mal die Suche starten kann - wenn man will.
Anhang hier mal meine aktuellen Dateien:
index.php:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
<!-- Suchfeld inkl. Button -->
<form action="search.php" method="post">
Dein Suchwort:<br>
<input type="text" size="24" maxlength="50" name="search"><br><br>
<table>
<tr>
<td>
<input type="checkbox" name="aufgabengebiet[]" value="1">Altenhilfe<br>
<input type="checkbox" name="aufgabengebiet[]" value="2">Andenken an Verfolgte/Kriegs- und Katastrophenopfer<br>
<input type="checkbox" name="aufgabengebiet[]" value="3">Bildung/Erziehung/Studentenhilfe<br>
//gekürzt wegen zu großer Datei...
</td>
</tr>
</table>
<input type="submit" value="Suche starten">
</form> |
|
search.php:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
|
<?
$search = $_POST["search"];
function mark_words ($text, $words, $colors = false) {
// wenn kein Array mit Farbangaben übergeben wird ...
// ... diese Standardfarben verwenden
if (!$colors || !is_array($colors) ) {
$colors = array('#ff9999', '#ffff99', '#ff99ff', '#99ffff','#99ff99');
}
$c = 0;
// Schleife über alle Suchbegriffe
foreach ($words as $w) {
// ggf. Metazeichen im Suchbegriff escapen
$w = preg_quote(trim($w));
if($w=='') {
continue;
}
$regexp = "/($w)(?![^<]+>)/i";
$replacement = '<b style="background-color:'.$colors[$c].'">\\1</b>';
$text = preg_replace ($regexp,$replacement ,$text);
$c++;
if ($c >= count($colors)) {
$c=0;
}
}
return $text;
}
//Prüfung, ob Suchbegriff eingegeben wurde - Ende
if(isset($_POST["search"])){
//Zusatzdaten in ExtraDatei speichern
require_once("moreinfos.php");
//Suchewörter aufsplitten
$searchstring = $search;
$array = explode(' ',$searchstring);
for($x = 0; $x < count($array); $x++) {
// count(Suchwörtern) > 1 => Operator AND hinzufügen, da jedes Wort einzeln in den Feldern gesucht werden soll
if ($x > 0 && $x < count($array)) {
$sqlsearchstring .= " AND"; //nur Datensätze, in denen alle Suchwörter vorkommen
$sqlsearchstring2 .= " OR"; //alle Datensätze, in denen jedes einzelne Wort vorkommt
}
$sqlsearchstring .= " (s.name LIKE '%".$array[$x]."%' OR s.strasse LIKE '%".$array[$x]."%' OR s.ort LIKE '%".$array[$x]."%' OR s.zweck LIKE '%".$array[$x]."%')";
$sqlsearchstring2 .= " (s.name LIKE '%".$array[$x]."%' OR s.strasse LIKE '%".$array[$x]."%' OR s.ort LIKE '%".$array[$x]."%' OR s.zweck LIKE '%".$array[$x]."%')";
}
} else {
echo "KEIN SUCHBEGRIFF VORHANDEN";
}
if(isset($_POST['aufgabengebiet']) && is_array($_POST['aufgabengebiet'])){
/* Suche Aufbereiten */
$search_files = '';
foreach ($_POST['aufgabengebiet'] as $ao) {
if ($search_files == '') {
$search_files = 'v.id_Bereich = '.intval($ao);
} else {
$search_files .= ' OR v.id_Bereich = '.intval($ao);
}
}//ende foreach
}
//Verbindung zur DB herstellen
require_once("dbconnect.php");
//Ergebnisausgabe
echo "<h1 align=center><u>Suchergebnis</u></h1><br><br><br>";
//Daten aus MySql-Datenbank holen
if(empty($search_files)){
$abfrage = "SELECT v.*, s.name, s.strasse, s.plz, s.ort, s.zweck, b.txt_Bereich FROM tblStiftung2Bereiche AS v
LEFT JOIN stiftungsdaten s ON v.id_Stiftung = s.id_Stiftung
Left JOIN tblBereiche b ON v.id_Bereich = b.id_Bereich
WHERE $sqlsearchstring";
$abfrage2 = "SELECT v.*, s.name, s.strasse, s.plz, s.ort, s.zweck, b.txt_Bereich FROM tblStiftung2Bereiche AS v
LEFT JOIN stiftungsdaten s ON v.id_Stiftung = s.id_Stiftung
Left JOIN tblBereiche b ON v.id_Bereich = b.id_Bereich
WHERE $sqlsearchstring";
$abfrage3 = "SELECT v.*, s.name, s.strasse, s.plz, s.ort, s.zweck, b.txt_Bereich FROM tblStiftung2Bereiche AS v
LEFT JOIN stiftungsdaten s ON v.id_Stiftung = s.id_Stiftung
Left JOIN tblBereiche b ON v.id_Bereich = b.id_Bereich
WHERE $sqlsearchstring2";
} else {
$abfrage = "SELECT v.*, s.name, s.strasse, s.plz, s.ort, s.zweck, b.txt_Bereich FROM tblStiftung2Bereiche AS v
LEFT JOIN stiftungsdaten s ON v.id_Stiftung = s.id_Stiftung
Left JOIN tblBereiche b ON v.id_Bereich = b.id_Bereich
WHERE $sqlsearchstring AND $search_files";
$abfrage2 = "SELECT v.*, s.name, s.strasse, s.plz, s.ort, s.zweck, b.txt_Bereich FROM tblStiftung2Bereiche AS v
LEFT JOIN stiftungsdaten s ON v.id_Stiftung = s.id_Stiftung
Left JOIN tblBereiche b ON v.id_Bereich = b.id_Bereich
WHERE $sqlsearchstring OR $search_files";
$abfrage3 = "SELECT v.*, s.name, s.strasse, s.plz, s.ort, s.zweck, b.txt_Bereich FROM tblStiftung2Bereiche AS v
LEFT JOIN stiftungsdaten s ON v.id_Stiftung = s.id_Stiftung
Left JOIN tblBereiche b ON v.id_Bereich = b.id_Bereich
WHERE $sqlsearchstring2 OR $search_files";
}
$ergebnis = mysql_query($abfrage) or die (mysql_error());
$ergebnis2 = mysql_query($abfrage2) or die (mysql_error());
$ergebnis3 = mysql_query($abfrage3) or die (mysql_error());
$res = array();
$subres = array();
while($row = mysql_fetch_object($ergebnis)) {
$res [$row->id_Stiftung] = array('Name' => $row->name, 'Strasse' => $row->strasse, 'PLZ' => $row->plz, 'Ort' => $row->ort, 'Zweck' => $row->zweck);
$subres[$row->id_Stiftung][$row->id_Bereich] = $row->txt_Bereich;
}
if (count($res) != 0) {
echo "bin in der Abfrage1";
$ausgabe = '<center><b>Gefundene Datensätze: '.count($res).'<b></center><br><br>';
$ausgabe .= '<table width="60%" frame="below" align="center>"';
} else {
while($row = mysql_fetch_object($ergebnis2)) {
$res [$row->id_Stiftung] = array('Name' => $row->name, 'Strasse' => $row->strasse, 'PLZ' => $row->plz, 'Ort' => $row->ort, 'Zweck' => $row->zweck);
$subres[$row->id_Stiftung][$row->id_Bereich] = $row->txt_Bereich;
}
if (count($res) != 0) {
echo "bin in der Abfrage2";
$ausgabe = '<center><b>Gefundene Datensätze: '.count($res).'<b></center><br><br>';
$ausgabe .= '<table width="60%" frame="below" align="center>"';
} else {
while($row = mysql_fetch_object($ergebnis3)) {
$res [$row->id_Stiftung] = array('Name' => $row->name, 'Strasse' => $row->strasse, 'PLZ' => $row->plz, 'Ort' => $row->ort, 'Zweck' => $row->zweck);
$subres[$row->id_Stiftung][$row->id_Bereich] = $row->txt_Bereich;
}
if (count($res) != 0) {
echo "bin in der Abfrage3";
$ausgabe = '<center><b>Gefundene Datensätze: '.count($res).'<b></center><br><br>';
$ausgabe .= '<table width="60%" frame="below" align="center>"';
} else {
echo "KEINE DATEN ZU IHRER ANFRAGE ENTHALTEN!";
}
}
}
foreach ($res as $key => $value) {
//Suchwörter farblich markieren
$res[$key][Name]= mark_words($res[$key][Name], $array);
$res[$key][Strasse]= mark_words($res[$key][Strasse], $array);
$res[$key][Ort]= mark_words($res[$key][Ort], $array);
$res[$key][Zweck]= mark_words($res[$key][Zweck], $array);
$ausgabe .= '<tr>
<td width="50%" align="center" valign="middle">
Name: '.$res[$key][Name].'<br>
Strasse: '.$res[$key][Strasse].'<br>
Ort: '.$res[$key][PLZ].' '.$res[$key][Ort].'<br>
</td>
<td width=50% valign=middle>
'.$res[$key][Zweck].'<br><br>
Treffer: '.implode(', ',$subres[$key]).'
</td>
</tr>';
}
$ausgabe .= '</table>';
//Portraitanzeige
echo "<br><br>Wollen Sie mit Hilfe der folgenden Synonyme erneut suchen?<br>Dann klicken Sie auf das jeweilige Synonym, das benutzt werden soll!<br>";
include_once("beispiel.php");
echo "<br>";
print $ausgabe;
//Verbindung zur DB trennen
require_once("dbdisconnect.php");
?> |
|
Die beispiel.php habe ich so angepasst (an die Stelle wo Ehrenamt steht soll jeweils ein Suchwort - damit dann die Synonyme angezeigt werden
):
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
<?php
include_once("wortschatzLeipzig.php");
$test=wortschatzLeipzig("Ehrenamt","Thesaurus","5");
foreach ($test as $value) {
$arraySynonym[] = utf8_decode($value);
}
echo "<br>";
for($x = 1; $x < count($arraySynonym); $x++) {
echo '<a href="index.php">'.$arraySynonym[$x]."</a><br>";
}
?> |
|
So wie ich es im ersten Post geschrieben habe, ging es leider nicht
__________________ Lieben Gruß, consch.
|
|
11.06.2009 23:07 |
|
|
consch
Langschläferin
Dabei seit: 02.01.2008
Beiträge: 246
0 Filebase-Einträge
Alter: 43 Jahre
Herkunft: Berlin wBB-Version: wBB2.3
Mitglied bewerten
Level: 38 [?]
Erfahrungspunkte: 1.458.808
Nächster Level: 1.460.206
Themenstarter
|
|
Wie meinst Du das?
Steh irgendwie auf m Schlauch.
Muss ich das gleich in der index.php schon ändern oder später?
__________________ Lieben Gruß, consch.
|
|
12.06.2009 22:18 |
|
|
consch
Langschläferin
Dabei seit: 02.01.2008
Beiträge: 246
0 Filebase-Einträge
Alter: 43 Jahre
Herkunft: Berlin wBB-Version: wBB2.3
Mitglied bewerten
Level: 38 [?]
Erfahrungspunkte: 1.458.808
Nächster Level: 1.460.206
Themenstarter
|
|
Vielleicht versuche ich mein Problem noch mal zu schildern. Es ist etwas kompliziert
In der index.php sollen ein(mehrere) Suchwort(Suchwörter) eingegeben werden, diese werden in der search.php verarbeitet und zusätzlich möchte ich gern, dass für jedes Wort einzeln die beispiel.php ausgeführt wird. Dort wo momentan "Ehrenamt" steht, soll jeweils das Wort aus der Sucheingabe rein. Da dieses Wort weiterverarbeitet wird (von einer externen Seite - Datei in der zip aus dem ersten Beitrag - aus).
Durch die externe Seite wird dann eine Liste mit Synonymen ausgeschrieben, diese verarbeite ich als Link. Das ist das was Du jetzt in der letzten Antwort geschrieben hattest. Und wenn ich nun auf den Link/das Synonym klicke, möchte ich, dass dieses Synonyme ins Suchfeld der index.php eingegeben wird und die Suchanfrage noch einmal mit dem Synonym durchgeführt wird.
Ich hoffe es war ein wenig verständlicher. Ich komme nämlich nicht weiter
__________________ Lieben Gruß, consch.
|
|
12.06.2009 22:39 |
|
|
consch
Langschläferin
Dabei seit: 02.01.2008
Beiträge: 246
0 Filebase-Einträge
Alter: 43 Jahre
Herkunft: Berlin wBB-Version: wBB2.3
Mitglied bewerten
Level: 38 [?]
Erfahrungspunkte: 1.458.808
Nächster Level: 1.460.206
Themenstarter
|
|
Das Projekt hänge ich mal an.
Wenn man jetzt im Suchfeld hilfe eingibt, dann starten erhält man ein Ergebnis.
Dabei stehen oben zwei Links.
Die kommen durch die Dateien beispiel.php (da steht noch Ehrenamt - dort möchte ich aber gern "hilfe" stehen haben) und wortschatzLeipzig.php
Wenn man jetzt auf bspw. auf Ehrendienst klickt, soll sich die index.php öffnen und dieses Wort soll im Suchfeld stehen.
Dann kann man "suche starten" klicken und nun wird mit dem neuen Wort (nämlich bspw. Ehrendienst) gesucht.
__________________ Lieben Gruß, consch.
|
|
12.06.2009 22:54 |
|
|
consch
Langschläferin
Dabei seit: 02.01.2008
Beiträge: 246
0 Filebase-Einträge
Alter: 43 Jahre
Herkunft: Berlin wBB-Version: wBB2.3
Mitglied bewerten
Level: 38 [?]
Erfahrungspunkte: 1.458.808
Nächster Level: 1.460.206
Themenstarter
|
|
Das ich nicht weiß, wie ich dieses Suchwörter, die am Anfang über die index.php eingeben werden in die beispiel.php bekommen - nämlich genau an die Stelle, wo jetzt Ehrenamt steht.
__________________ Lieben Gruß, consch.
|
|
12.06.2009 23:07 |
|
|
consch
Langschläferin
Dabei seit: 02.01.2008
Beiträge: 246
0 Filebase-Einträge
Alter: 43 Jahre
Herkunft: Berlin wBB-Version: wBB2.3
Mitglied bewerten
Level: 38 [?]
Erfahrungspunkte: 1.458.808
Nächster Level: 1.460.206
Themenstarter
|
|
Okay
Danke für Deine Mühen.
Es muss nicht gleich sein
also keine Hektik.
Danke, dass Du so nett hilfst.
__________________ Lieben Gruß, consch.
|
|
12.06.2009 23:27 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.763.099
Nächster Level: 266.777.854
|
|
|
12.06.2009 23:32 |
|
|
consch
Langschläferin
Dabei seit: 02.01.2008
Beiträge: 246
0 Filebase-Einträge
Alter: 43 Jahre
Herkunft: Berlin wBB-Version: wBB2.3
Mitglied bewerten
Level: 38 [?]
Erfahrungspunkte: 1.458.808
Nächster Level: 1.460.206
Themenstarter
|
|
Danke - sehr nett.
Da freu ich mich.
__________________ Lieben Gruß, consch.
|
|
12.06.2009 23:34 |
|
|
consch
Langschläferin
Dabei seit: 02.01.2008
Beiträge: 246
0 Filebase-Einträge
Alter: 43 Jahre
Herkunft: Berlin wBB-Version: wBB2.3
Mitglied bewerten
Level: 38 [?]
Erfahrungspunkte: 1.458.808
Nächster Level: 1.460.206
Themenstarter
|
|
Wollte nur mal kurz anfragen, ob Du schon mal drübergeschaut hast *schüchtern guck*
__________________ Lieben Gruß, consch.
|
|
17.06.2009 18:41 |
|
|
consch
Langschläferin
Dabei seit: 02.01.2008
Beiträge: 246
0 Filebase-Einträge
Alter: 43 Jahre
Herkunft: Berlin wBB-Version: wBB2.3
Mitglied bewerten
Level: 38 [?]
Erfahrungspunkte: 1.458.808
Nächster Level: 1.460.206
Themenstarter
|
|
Fehler? Bei mir geht es.
Wie hast Du die Datenbank genannt?
Deshalb kommt der Fehler. Steht in der connect.php
__________________ Lieben Gruß, consch.
|
|
17.06.2009 21:00 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.763.099
Nächster Level: 266.777.854
|
|
|
17.06.2009 21:18 |
|
|
consch
Langschläferin
Dabei seit: 02.01.2008
Beiträge: 246
0 Filebase-Einträge
Alter: 43 Jahre
Herkunft: Berlin wBB-Version: wBB2.3
Mitglied bewerten
Level: 38 [?]
Erfahrungspunkte: 1.458.808
Nächster Level: 1.460.206
Themenstarter
|
|
Was genau meinst Du mit der Groß-/Kleinschreibung?
Kannst Du mir da bitte ein Beispiel nennen?
Das wäre super
Was nun passieren soll.
In der beispiel.php steht ja bei der Übergabe "Ehrenamt". Es wäre super, wenn sich dort jeweils automatisch die einzelnen Wörter "eintragen" die im Suchfeld eingegeben wurden.
Beispiel: man gibt im Suchfeld ein: hilfe leistung
Dann möchte ich gern, dass nun mithilfe der beispiel.php beim Suchergebnis zu jedem Wort die Synonyme angezeigt werden.
Also da wo jetzt in der beispiel.php "Ehrenamt" steht, soll einmal hilfe stehen und einmal leistung.
Hatte überlegt, dass vielleicht über eine Schleife zumachen, dass man die Funktion so oft füllt wieviele Wörter in der Suche eingegeben werden.
Verstehst Du was ich meine?
Nett, dass Du Dir das mal anschaust.
__________________ Lieben Gruß, consch.
|
|
17.06.2009 21:25 |
|
|
|
|
|
|