Suchfunktion für Datenbanktabelle
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Re: Suchfunktion für Datenbanktabelle
@Miriam
Danke, läuft jetzt super !
Danke, läuft jetzt super !
Re: Suchfunktion für Datenbanktabelle
// Yay for wildcards...
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Ich schmeiß' alles hin und...
... lasse es liegen
Re: Suchfunktion für Datenbanktabelle
Nachdem das nun alles so wunderbar geht, würde ich das gern noch etwas erweitern.
Zur Zeit findet er jeden Begriff der in der Datenbankspalte "name" eingetragen ist.
Wie muß ich jetzt die search.html und search_2.php ändern damit die Daten aller Spalten anzeigt werden ?
Ich gehe davon aus das die search.php schon OK ist oder fehlt da noch was ?
search.php
search.html
search_2.php
Zur Zeit findet er jeden Begriff der in der Datenbankspalte "name" eingetragen ist.
Wie muß ich jetzt die search.html und search_2.php ändern damit die Daten aller Spalten anzeigt werden ?
Ich gehe davon aus das die search.php schon OK ist oder fehlt da noch was ?
search.php
Code: Alles auswählen
$submit = (isset($_POST['submit'])) ? true : false;
{
$submit = (isset($_POST['post'])) ? true : false;
$id = request_var ('id', 0);
$land = request_var ('land', '', true);
$name = request_var ('name', '', true);
$plz = request_var('plz', '', true);
$ort = request_var('ort', '', true);
$sql = 'SELECT * FROM ' . TOURZIEL_TABLE . '
WHERE id = ' . (int)$id . "
OR land LIKE '%" . $db->sql_escape($land) . "%'
OR name LIKE '%" . $db->sql_escape($name) . "%'
OR plz LIKE '%" . $db->sql_escape($plz) . "%'
OR ort LIKE '" . $db->sql_escape($ort) . "'";
$result = $db->sql_query($sql);
$template->assign_vars(array(
'U_FORM_ACTION' => append_sid($phpbb_root_path . 'adress_search_2.' . $phpEx, 'mode=search&id=' . $row['id']),
));
}
Code: Alles auswählen
<form method="post" action="{U_FORM_ACTION}">
<table width="300" border="0">
<tr>
<td>Suchbegriff eingeben</td>
<td><input type="text" name="name" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Suchen"></td>
</tr>
</table>
</form>
Code: Alles auswählen
$name = request_var ('name', '', true);
$sql = 'SELECT * FROM ' . TOURZIEL_TABLE ."
WHERE name LIKE '%" . $db->sql_escape($name) . "%'
ORDER BY name ";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$template->assign_block_vars('liste', array(
'POST_ID' => $row['id'],
'POST_LAND' => $row['land'],
'POST_NAME' => $row['name'],
'POST_STRASSE' => $row['strasse'],
'POST_PLZ' => $row['plz'],
'POST_ORT' => $row['ort'],
));
}
$db->sql_freeresult($result);
Re: Suchfunktion für Datenbanktabelle
Warum schmeißt Du nicht die search.php und die search_2.php zusammen?
Du Übergibst dann mittels des Formulars in der search.html
die relevanten Suchparameter and die search.php.
Wenn
So in der Art:
Ist natürlich noch nicht fertig. Da mußt Du noch ein bißchen dran feilen.
Du Übergibst dann mittels des Formulars in der search.html
Code: Alles auswählen
<form method="post" action="{U_FORM_ACTION}">
<h1>Suche:</h1>
<fieldset>
<legend>Personen bezogen</legend>
<table>
<tr>
<td width="100px">Name: </td><td><input type="text" name="name" /></td>
</tr>
<tr>
<td width="100px">Vorname: </td><td><input type="text" name="vorname" /></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>Ort bezogen</legend>
<table>
<tr>
<td width="100px">Land: </td><td><input type="text" name="land" /></td>
</tr>
<tr>
<td width="100px">Ort: </td><td><input type="text" name="ort" /></td>
</tr>
<tr>
<td width="100px">Postleitzahl: </td><td><input type="text" name="plz" /></td>
</tr>
<tr>
<td width="100px">Straße: </td><td><input type="text" name="strasse" /></td>
</tr>
</table>
</fieldset>
<fieldset>
<legend>Absenden</legend>
<table>
<tr>
<td width="100px"> </td><td><input type="submit" name="submit" value="Suchen"></td>
</tr>
</table>
</fieldset>
</form>
Wenn
$_POST['submit']
gesetzt ist, dann zeigt der Aufruf der search.php die Suchergebnisse an, ansonsten das Such-Formlar.So in der Art:
Code: Alles auswählen
<?php
//search.php
$submit = (isset($_POST['submit'])) ? true : false;
if ($submit) // zeige Ergebnisse
{
$id = request_var ('id', 0);
$land = request_var ('land', '', true);
$name = request_var ('name', '', true);
$strasse = request_var('strasse', '', true);
$plz = request_var('plz', 0); // PLZ sollte doch integer sein... oder?
$ort = request_var('ort', '', true);
$sql = 'SELECT * FROM ' . TOURZIEL_TABLE . '
WHERE id = ' . (int)$id . "
OR land LIKE '%" . $db->sql_escape($land) . "%'
OR name LIKE '%" . $db->sql_escape($name) . "%'
OR plz = $plz
OR ort LIKE '" . $db->sql_escape($ort) . "'";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$template->assign_block_vars('liste', array(
'POST_ID' => $row['id'],
'POST_LAND' => $row['land'],
'POST_NAME' => $row['name'],
'POST_STRASSE' => $row['strasse'],
'POST_PLZ' => $row['plz'],
'POST_ORT' => $row['ort'],
));
}
$db->sql_freeresult($result);
$template->assign_vars(array(
'U_FORM_ACTION' => append_sid($phpbb_root_path . 'search.' . $phpEx),
));
}
else // zeige Suchformular
{
page_header($user->lang['SEARCH']);
$template->set_filenames(array(
'body' => 'search.html')
);
page_footer();
}
?>
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Ich schmeiß' alles hin und...
... lasse es liegen
Re: Suchfunktion für Datenbanktabelle
@Miriam
Dank für deine Mühe.
In dieser Schreibweise liegt eigentlich mein Problem.
Das war auch der Grund warum ich das in 2 Dateien zerlegt hatte. Wenn ich das so als eine Datei zusammenfasse bekomme ich nach dem Absenden der Suche zwar keine Fehlermeldung aber immer nur eine weiße Seite angezeigt.
Ich denke der Fehler liegt hier:
else // zeige Suchformular
{
page_header($user->lang['SEARCH']);
$template->set_filenames(array(
'body' => 'search.html')
);
Ich bekomme da die richthe Schreibweise im Template nicht hin.
Es dürfte an der Übergabe von dieser Zeile liegen: page_header($user->lang['SEARCH']);
Dank für deine Mühe.
In dieser Schreibweise liegt eigentlich mein Problem.
Das war auch der Grund warum ich das in 2 Dateien zerlegt hatte. Wenn ich das so als eine Datei zusammenfasse bekomme ich nach dem Absenden der Suche zwar keine Fehlermeldung aber immer nur eine weiße Seite angezeigt.
Ich denke der Fehler liegt hier:
else // zeige Suchformular
{
page_header($user->lang['SEARCH']);
$template->set_filenames(array(
'body' => 'search.html')
);
Ich bekomme da die richthe Schreibweise im Template nicht hin.
Es dürfte an der Übergabe von dieser Zeile liegen: page_header($user->lang['SEARCH']);
Re: Suchfunktion für Datenbanktabelle
Wo genau paßt es denn nicht? Hast Du mal geschaut, wie die phpBB3 search.php aufgebaut ist?
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Ich schmeiß' alles hin und...
... lasse es liegen
Re: Suchfunktion für Datenbanktabelle
@Miriam
Die phpBB-search.php hab ich mir auch schon ausgiebig angesehen. Allerdings sind da meine Kentnisse zu bescheiden um restlos durch zu sehen.
So hab ich das jetzt komplett: (Ergebnis ist nach Eingabe einer Suche aber eine weiße Seite)
search.php
search.html
Es scheitert also daran die search.php mit dem Ergebnis aufzurufen.
Die phpBB-search.php hab ich mir auch schon ausgiebig angesehen. Allerdings sind da meine Kentnisse zu bescheiden um restlos durch zu sehen.
So hab ich das jetzt komplett: (Ergebnis ist nach Eingabe einer Suche aber eine weiße Seite)
search.php
Code: Alles auswählen
<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup('tourziel');
// Suche
$submit = (isset($_POST['submit'])) ? true : false;
if ($submit)
{
$id = request_var ('id', 0);
$land = request_var ('land', '', true);
$name = request_var ('name', '', true);
$strasse = request_var('strasse', '', true);
$plz = request_var('plz', 0);
$ort = request_var('ort', '', true);
$sql = 'SELECT * FROM ' . TOURZIEL_TABLE . '
WHERE id = ' . (int)$id . "
OR land LIKE '%" . $db->sql_escape($land) . "%'
OR name LIKE '%" . $db->sql_escape($name) . "%'
OR strasse LIKE '%" . $db->sql_escape($strasse) . "%'
OR plz = $plz
OR ort LIKE '" . $db->sql_escape($ort) . "'";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$template->assign_block_vars('liste', array(
'POST_ID' => $row['id'],
'POST_LAND' => $row['land'],
'POST_NAME' => $row['name'],
'POST_STRASSE' => $row['strasse'],
'POST_PLZ' => $row['plz'],
'POST_ORT' => $row['ort'],
'POST_EMAIL' => $row['email'],
'POST_HOME' => $row['home'],
));
}
$db->sql_freeresult($result);
$template->assign_vars(array(
'U_FORM_ACTION' => append_sid($phpbb_root_path . 'search.' . $phpEx),
));
}
else
{
page_header($user->lang['SEARCH']);
$template->set_filenames(array(
'body' => 'search.html')
);
page_footer();
}
?>
Code: Alles auswählen
<h2>{L_SUCHEN}</h2> <br>
<form method="post" action="{U_FORM_ACTION}">
<table>
<tr>
<td width="100px">Land: </td><td><input type="text" name="land" /></td>
</tr>
<tr>
<td width="100px">Tourziel: </td><td><input type="text" name="name" /></td>
</tr>
<tr>
<td width="100px">Strasse: </td><td><input type="text" name="strasse" /></td>
</tr>
<tr>
<td width="100px">PLZ: </td><td><input type="text" name="plz" /></td>
</tr>
<tr>
<td width="100px">Ort: </td><td><input type="text" name="ort" /></td>
</tr>
<tr>
<td width="100px"> </td><td><input type="submit" name="submit" value="Suchen"></td>
</tr>
<!-- BEGIN liste -->
<b><font color="crimson">{liste.POST_NAME}</font></b><br />
{liste.POST_LAND}
{liste.POST_PLZ}
{liste.POST_ORT}
{liste.POST_STRASSE}
{liste.POST_TELEFON}
<a href="mailto:{liste.POST_EMAIL}"><font color="blue">{liste.POST_EMAIL}</font></a>
<a href="http://{liste.POST_HOME}" target="visu"><font color="blue">{liste.POST_HOME}</font></a><br />
<div class="back2top"><a href="#wrap" class="top" title="{L_BACK_TO_TOP}">{L_BACK_TO_TOP}</a></div>
<hr/>
<!-- END liste -->
</table>
</form>
Re: Suchfunktion für Datenbanktabelle
search.php
Code: Alles auswählen
<?php define('IN_PHPBB', true); $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './'; $phpEx = substr(strrchr(__FILE__, '.'), 1); include($phpbb_root_path . 'common.' . $phpEx); // Start session management $user->session_begin(); $auth->acl($user->data); $user->setup('search'); // Suche $submit = (isset($_POST['submit'])) ? true : false; if ($submit) { $id = request_var ('id', 0); $land = (request_var ('land', '', true)) ? " OR land LIKE '%" . $db->sql_escape(request_var ('land', '', true)) . "%'" : ''; $name = (request_var ('name', '', true)) ? " OR name LIKE '%" . $db->sql_escape(request_var ('name', '', true)) . "%'" : ''; $strasse = (request_var('strasse', '', true)) ? " OR strasse LIKE '%" . $db->sql_escape(request_var('strasse', '', true)) . "%'" : ''; $plz = (request_var('plz', 0)) ? " OR plz = " . request_var('plz', 0) : ''; $ort = (request_var('ort', '', true)) ? " OR ort LIKE '%" . $db->sql_escape(request_var('ort', '', true)) . "%'": ''; $sql = 'SELECT * FROM ' . TOURZIEL_TABLE . ' WHERE id = ' . (int)$id . $land . $name . $strasse . $plz . $ort; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $template->assign_block_vars('liste', array( 'POST_ID' => $row['id'], 'POST_LAND' => $row['land'], 'POST_NAME' => $row['name'], 'POST_STRASSE' => $row['strasse'], 'POST_PLZ' => $row['plz'], 'POST_ORT' => $row['ort'], 'POST_EMAIL' => $row['email'], 'POST_HOME' => $row['home'], )); } $db->sql_freeresult($result); $template->assign_vars(array( 'U_FORM_ACTION' => append_sid($phpbb_root_path . 'search.' . $phpEx), )); } page_header($user->lang['SEARCH']); $template->set_filenames(array( 'body' => 'search_tour.html') ); page_footer(); ?>
Code: Alles auswählen
<!-- INCLUDE overall_header.html --> <h2>{L_SUCHEN}</h2> <br> <form method="post" action="{U_FORM_ACTION}"> <table> <tr> <td width="100px">Land: </td><td><input type="text" name="land" /></td> </tr> <tr> <td width="100px">Tourziel: </td><td><input type="text" name="name" /></td> </tr> <tr> <td width="100px">Strasse: </td><td><input type="text" name="strasse" /></td> </tr> <tr> <td width="100px">PLZ: </td><td><input type="text" name="plz" /></td> </tr> <tr> <td width="100px">Ort: </td><td><input type="text" name="ort" /></td> </tr> <tr> <td width="100px"> </td><td><input type="submit" name="submit" value="Suchen"></td> </tr> <!-- BEGIN liste --> <b><font color="crimson">{liste.POST_NAME}</font></b><br /> {liste.POST_LAND} {liste.POST_PLZ} {liste.POST_ORT} {liste.POST_STRASSE} {liste.POST_TELEFON} <a href="mailto:{liste.POST_EMAIL}"><font color="blue">{liste.POST_EMAIL}</font></a> <a href="http://{liste.POST_HOME}" target="visu"><font color="blue">{liste.POST_HOME}</font></a><br /> <div class="back2top"><a href="#wrap" class="top" title="{L_BACK_TO_TOP}">{L_BACK_TO_TOP}</a></div> <hr/> <!-- END liste --> </table> </form> <!-- INCLUDE overall_footer.html -->
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Ich schmeiß' alles hin und...
... lasse es liegen