| | | | |
| | |
| Benutzer Registriert seit: 22.02.2006
Beiträge: 61
![]() | Hallo, ich wollte gerne auf miener seite (da ich die für meine Schule mache) eine Praktika DB machen. Das geht auch alles super das eintragen und wieder ausgeben. Meine Frage ist jetzt, wie man eine Suche berwirklichen könnte. Die DB sieht bis jetzt so aus: - schülername - firma - berufsbild - gefunden (da kann man auswählen wie das Praktikum war (gut und schlecht)) - kommentar - time (die zeit als das eingetragen wurde) - homepage (der Firma) Nun ich habe schon mit einer Suche begonnen (gebe euch unten auch den Quellcode) aber jetzt wollte ich (da die suche scon länder auf meiner seie besteht) die suche weiter ausbauen, das es auch nach der Tabelle ic1_praktikum sucht und ausgibt. Kann mir vieleicht jemand helfen das zu erweitern ? Hier der Code der search.php: Code: <?php
defined ('main') or die ( 'no direct access' );
function serach_mark($text,$such) {
#$text = BBcode($text);
$serar = explode(' ', $such);
$text = strip_tags($text);
$text = stripslashes($text);
$rte = '';
$tleng = 30;
foreach($serar as $v) {
$firs = strpos(strtolower($text),strtolower($v));
$begi = (($firs - $tleng) < 0 ? 0 : $firs - $tleng );
$leng = strlen($text);
$ende = (($firs + strlen($v) + $tleng) > $leng ? $leng : $firs + strlen($v) + $tleng );
$ttxt = substr($text,$begi,($ende - $begi));
$rte .= ' ... '.preg_replace("/".$v."/si",''.$v.'',$ttxt);
}
return ($rte);
}
function search_finduser() {
$design = new design ( 'Finduser' , '', 0 );
$design->header();
$tpl = new tpl ( 'search_finduser' );
$tpl->out(0);
if ( isset ( $_POST['sub'] ) AND !empty($_POST['name']) ) {
$name = str_replace('*',"%",$_POST['name']);
$q = "SELECT name,name FROM prefix_user WHERE name like '".$name."'";
$tpl->set ('username',dbliste('',$tpl,'username',$q));
$tpl->out(1);
}
$tpl->out(2);
$design->footer();
}
if ($menu->get(1) == 'finduser') {
search_finduser();
exit();
}
$such = '';
if ($menu->get(1) != '') {
$such = $menu->get(1);
} elseif (isset($_REQUEST['search'])) {
$such = $_REQUEST['search'];
}
$such = stripslashes(escape($such, 'string'));
$snac = 'Suche';
if ($such == 'augt' OR $such == 'aeit' OR $such == 'aubt') {
$ar_s = array('aubt'=>'unbeantworteten Themen','aeit'=>'eigenen Beiträgen','augt'=>'neue Themen seit dem letzten Besuch');
$snac = $ar_s[$such];
} elseif ( isset($_REQUEST['search']) ) {
$snac = 'nach: '.$such;
}
$title = $allgAr['title'].' :: Suchen :: '.htmlentities($snac);
$hmenu = 'Suchen » '.htmlentities($snac);
$design = new design ( $title , $hmenu );
$design->header();
$tpl = new tpl ('search');
$tpl->set ('size', 30);
if ($such != 'augt' AND $such != 'aeit' AND $such != 'aubt') {
$tpl->set_out('search',escape_for_fields($such),0);
}
if (!empty($such)) {
$page = 1;
if (isset($_GET['page'])) {
$page = str_replace('-p','',$_GET['page']);
}
$limit = 25; // Limit
$anfang = ($page - 1) * $limit;
if ($such == 'aubt' OR $such == 'augt' OR $such == 'aeit') {
$s = "DISTINCT b.id as fid, a.name as titel, 'foru' as typ, a.id as id";
$q = "select {SELECT}
FROM prefix_topics a
LEFT JOIN prefix_forums b ON b.id = a.fid
LEFT JOIN prefix_posts c ON c.tid = a.id
WHERE (b.view >= ".$_SESSION['authright']." OR b.reply >= ".$_SESSION['authright']." OR b.start >= ".$_SESSION['authright'].")
AND {WHERE}
ORDER BY c.time DESC";
}
$x = time() - (3600 * 24 * 360);
if ($such == 'aubt') {
$where = "c.time >= ". $x ." AND a.rep = 0";
$c = str_replace('{WHERE}',$where,str_replace('{SELECT}','COUNT(DISTINCT a.id)',$q));
$gAnz = db_result(db_query($c),0);
$q = str_replace('{WHERE}',$where,str_replace('{SELECT}',$s,$q));
} elseif ($such == 'augt') {
$where = "c.time >= ". $x ." AND c.time >= ".$_SESSION['lastlogin'];
$gAnz = db_result(db_query(str_replace('{WHERE}',$where,str_replace('{SELECT}','COUNT(DISTINCT a.id)',$q))),0);
$q = str_replace('{WHERE}',$where,str_replace('{SELECT}',$s,$q));
} elseif ($such == 'aeit') {
$where = "c.time >= ". $x ." AND c.erstid = ".$_SESSION['authid'];
$gAnz = db_result(db_query(str_replace('{WHERE}',$where,str_replace('{SELECT}',' COUNT(DISTINCT a.id)',$q))),0);
$q = str_replace('{WHERE}',$where,str_replace('{SELECT}',$s,$q));
} else {
$such = str_replace('-','',$such);
$such = str_replace('=','',$such);
$such = str_replace('&','',$such);
$serar = explode(' ', $such);
$str_forum = '';
$str_news = '';
$str_downs = '';
foreach($serar as $v) {
$str = str_replace('\'','',$v);
$str = str_replace('"','',$str);
$str = addslashes($str);
if ( !empty($str) ) {
$str_forum .= "txt LIKE '%".$str."%' AND ";
$str_news .= "news_text LIKE '%".$str."%' AND ";
$str_downs .= "`descl` LIKE '%".$str."%' AND ";
}
}
$q = "(
SELECT DISTINCT
0 as fid,
news_title as titel,
'news' as typ,
news_id as id,
news_time as time
FROM prefix_news
WHERE (".$str_news." 1 = 1)
AND (news_time >= ". $x .")
) UNION (
SELECT DISTINCT
prefix_topics.fid as fid,
prefix_topics.name as titel,
'foru' as typ,
prefix_topics.id as id,
time as time
FROM prefix_posts
LEFT JOIN prefix_topics ON prefix_topics.id = prefix_posts.tid
LEFT JOIN prefix_forums ON prefix_forums.id = prefix_topics.fid
WHERE (prefix_forums.view >= ".$_SESSION['authright']." OR prefix_forums.reply >= ".$_SESSION['authright']." OR prefix_forums.start >= ".$_SESSION['authright'].")
AND (".$str_forum." 1 = 1)
AND (time >= ". $x .")
GROUP BY prefix_topics.id
) UNION (
SELECT DISTINCT
0 as fid,
CONCAT( name, ' ', version ) AS titel,
'down' as typ,
id,
UNIX_TIMESTAMP(time) as time
FROM prefix_downloads
WHERE (".$str_downs." 1 = 1)
AND (time >= ". $x .")
)
ORDER BY time DESC";
$gAnz = db_num_rows(db_query($q));
}
$q .= " LIMIT ".$anfang.",".$limit;
$MPL = db_make_sites ($page , "" , $limit , "index.php?search=".urlencode($such)."&page=", "", $gAnz );
$tpl->set_ar_out(array('MPL'=>$MPL,'gAnz'=>$gAnz),1);
$q = db_query($q);
$class = '';
while($r = db_fetch_assoc($q) ) {
$class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite' );
$r['class'] = $class;
if ($r['typ'] == 'foru') {
$r['ctime'] = db_result(db_query("SELECT MAX(time) FROM prefix_posts WHERE tid = ".$r['id']),0,0);
$r['ord'] = forum_get_ordner($r['ctime'],$r['id'],$r['fid']);
$r['link'] = 'forum-showposts-'.$r['id'];
} elseif ($r['typ'] == 'news') {
$r['ord'] = 'ord';
$r['link'] = 'news-'.$r['id'];
} elseif ($r['typ'] == 'down') {
$r['ord'] = 'ord';
$r['link'] = 'downloads-show-'.$r['id'];
}
$tpl->set_ar_out($r,2);
}
$tpl->out(3);
}
$design->footer();
?>
Gruß Lars |
| |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Ist mir jetzt zuviel Code, aber woran hängst du denn? Eine Suche kannst du entweder mit LIKE auf entsprechende Text-Felder oder mit einer Volltext-Suche MATCH AGAINST [1] durchführen. Code: SELECT * FROM tabelle WHERE spalte LIKE '%suchwort%' |
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Verbesserungsvorschläge: Design und Suche | Manko10 | Board-Support | 3 | 15.06.2008 16:21 |
| Suche 'strahlfreudigen' Router | nikosch | Off-Topic Diskussionen | 6 | 22.01.2008 19:06 |
| Suche in Office Dateien mit Index | Beatbox | Off-Topic Diskussionen | 6 | 09.02.2007 15:34 |
| Suche freien Mitarbeiter zur Suche von Linktauschpartnern | wiretheless | Trash | 0 | 05.08.2006 14:00 |
| suche funktion: suche alles zwischen | notyyy | PHP Tipps 2006 | 7 | 05.06.2006 20:46 |
| [Erledigt] Erweiterung der Suche | PHP Tipps 2007 | 2 | 01.12.2005 19:30 | |
| Suche in Datenbank realisieren | Unbekanntes_Pferd | PHP Tipps 2007 | 4 | 09.11.2005 16:22 |
| suche lösungsweg für komplexe suche, | md5hash | PHP Tipps 2005-2 | 3 | 19.07.2005 17:57 |
| stichwort suche | boehseronkel | Datenbanken | 2 | 14.07.2005 09:28 |
| mal wieder eine suche | lomtas | Datenbanken | 0 | 12.07.2005 11:03 |
| Suche FÄHIGE Coder für Mega-Projekt | NONNNNN | Beitragsarchiv | 1 | 14.04.2005 01:54 |
| Suche Job als Entwickler/Designer (Raum Bonn o. Telearbeit) | Beitragsarchiv | 23 | 01.03.2005 14:00 | |
| Suche mehrere Images........ | Beitragsarchiv | 7 | 10.01.2005 08:07 | |
| Suche Php(evt Mysql) Leute | Beitragsarchiv | 14 | 12.12.2004 15:15 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| mysql select order by descl limit#, forum_get_ordner, aubt shule, php mysql dbliste, if (select * from tabelle where username like \'%suchwort%\') php |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.