Profil | Mitglieder | Registrieren | Start | Suche


PHP-Support.de » Programmierung » PHP & MySQL » Codeschnipsel » Alte Codeschnipsel » Einfaches Suchscript mit Blätterfunktion    » Hallo Gast [Login | Registrieren]

Neues Thema | Antworten   

Autor Beitrag
chris
Mitglied
Guter User


Dabei seit: 27.07.2009
Herkunft: Bayern
Posts: 254
     Einfaches Suchscript mit Blätterfunktion Zitat | Bearbeiten

Einfaches PHP - Suchscript mit Blätterfunktion

Hallo Leute,

im Code sollte alles wissenswerte auskommentiert sein:

suche.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:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
<?php

#####################################################
#                                                   #
#   Einfaches PHP - Suchscript mit Blätterfunktion  #
#   Version 1.0                                     #
#                                                   #
#   Dateiname: suche.php                            #
#                                                   #
#   (c) 2012 by Chris Dimperl                       #
#                                                   #
#   Web: http://bilderup.de                         #
#                                                   #
#   Das Script darf frei verwendet und angepasst    #
#   werden.                                         #
#                                                   #
#   WICHTIG!!!!!                                    #
#                                                   #
#   Das Copyright darf nicht entfernt werden.       #
#   Wenn doch gewünscht, dann bitte erst bei mir    #
#   nachragen unter http://bilderup.de              #
#                                                   #
#####################################################

?>

<!-- Beginn HTML-Kopf -->
<html>
<head>
<title>Suchscript mit Bl&auml;tterfunktion - Demo by Chris Dimperl</title>
<style type="text/css">
body {
background-color: #FFFFFF;
padding:10px 10px 10px 10px;
font-size: 12px;
font-family:Arial, Verdana, Tahoma, Helvetica, sans-serif;
color:#3F3F3F;
}

a{
color:#00007F;
text-decoration: none;
}

a:hover{
color:#FF5F00;
text-decoration: none;
}

a:active{
color:#00007F;
text-decoration: none;
}

.input {
padding-left:5px;
padding-right:5px;
-moz-border-radius:4px;
-webkit-border-radius:4px;
border-radius: 4px;
background-color:#FFFFFF;
border: 1px solid #CFCFCF;
height:30px;
font-size: 12px;
color:#5F5F5F;
-moz-box-shadow: inset 0 1px 3px rgba(0,0,0,0.1);
-webkit-box-shadow: inset 0 1px 3px rgba(0,0,0,0.1);
box-shadow: inset 0 1px 3px rgba(0,0,0,0.1);
}

.button {
background: -webkit-gradient( linear, left top, left bottom, color-stop(0.05, #0000DF), color-stop(1, #0070C0) );
background: -moz-linear-gradient( center top, #0000DF 5%, #0070C0 100% );
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000DF', endColorstr='#0070C0');
background-color: #0060FF;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
height:30px;
border: 1px solid #0000FF;
display: inline-block;
color: #EFEFEF;
font-size: 14px;
font-weight: bold;
font-face: arial;
padding: 6px 24px;
text-decoration: none;
cursor: pointer;
}
</style>
</head>
<body>
<!-- Ende HTML-Kopf -->

<!-- Beginn Header/Seitenanfang -->
<div align=center>
<h1>Suchscript mit Bl&auml;tterfunktion</h1>
<!-- Ende Header/Seitenanfang -->

<!-- Beginn der Suchform -->
<form name="suche" action="<?php $_SERVER['SCRIPT_NAME']; ?>" method="POST">
<input class="input" type="text" size=80 name="s">
<input class="button" type="submit" name="submit" value="Suche">
</form>
<br />
<!-- Ende der Suchform -->

<!-- Beginn der Ergebnisverarbeitung -->

<?php

// Wir deaktivieren Fehlerausgaben. Wenn das Script produktiv eingesetzt wird, soll nicht jeder etwaige Fehler sehen und
// vielleicht ausnutzen um Schaden anzurichten. Bei Bedarf kann die Zeile auch gelöscht oder mit zwei // am Anfang der Zeile
// auskommentiert werden. Dies ist besonders local bei der Entwicklung sinnvoll, um Fehler zu finden.
error_reporting(0);

// Zuerst binden wir die Verbindung zur MySQL-Datenbank ein (db.php, db.inc.php, config.php, config.inc.php etc.)
// include('config.php'); // Wenn schon eine Konfigurationsdatei vorhanden ist, kann diese hier includet werden. Bitte dazu die beiden // am Anfang entfernen

// oder so - ganz klassisch. Wenn Ihr eine config-Datei verwendet, diese beiden Zeilen bitte auskommentieren mit // am Anfang oder die Zeilen löschen
mysql_connect('localhost','username','passwort') or die ('Es konnte keine Verbindung zum MySQL-Server aufgebaut werden');
mysql_select_db('datenbank-name') or die ('Es konnte keine Verbindung zur Datenbank aufgebaut werden');

// Wie viele Ergebnisse wollen wir pro Seite darstellen? In diesem Fall 25 Treffer pro Seite
$limit 25;

// Wir sichern die Suchabfrage ab, escapen die Eingabe und entfernen HTML-Tags
// mysql_real_escape_string() = escaped die Eingabe
// strip_tags() = entfernt HTML-Eingaben
$s mysql_real_escape_string(strip_tags($_POST['s']));

// Wenn der User nichts eingegeben hat, fangen wir das ab und geben einen Fehler aus
if($s == ''$s $_GET['s'];
if(
$s == '') {
echo 
'<font style="color:#BF0000;">Sie haben keinen Suchbegriff eingegeben</font>';

} else {

// Wenn eine Eingabe erfolgt ist, dann suchen wir danach in der Datenbank
$p $_GET['p'];
if(
$p == ''$p 1;

// Hier wird unsere Suchabfrage an die Datenbank übergeben. Tabellenname und Spalte bitte anpassen
$query mysql_query("SELECT * FROM `tabellenname` WHERE `spaltenname` LIKE '%$s%' ORDER BY `id` DESC") or die (mysql_error());
$results mysql_num_rows($query);

// Wenn keine Treffer gefunden wurden, geben wir wieder eine Fehlermeldung aus
if($results == 0){
echo 
'<font style="color:#BF0000;">Keine Treffer gefunden</font>';

}else{

// Wenn Treffer gefunden wurden, wollen wir wissen wie viele Treffer es sind
echo '<font style="color:#007F00;"><b>' $results '</b> Treffer gefunden</font>';

// Die Ergebnisse richten wir ganz klassisch linksbündig aus
echo '<br /><br /></div><div align=left><hr noshade size=1 width=100% color=#F0F0F0 />';

$pages ceil($results/$limit);

// Die Abfrage für die Blätterfunktion (Pagination). Tabellenname und Spalte bitte anpassen
$result mysql_query("SELECT * FROM `tabellenname` WHERE `spaltenname` LIKE '%$s%' ORDER BY `id` LIMIT " . ($p-1)*$limit ",$limit") or die (mysql_error());

while(
$row mysql_fetch_object($result)) {

// Hier geben wir nun unsere Treffer aus. Das kann man nach belieben formatieren. Je nachdem was man alles ausgeben will und wie
echo $row->spaltenname '<br />';
}
echo 
'</div><div align=center>';

// Ab hier beginnt unsere Blätterfunktion, bzw. ab hier werden uns die Links zur Navigation ausgegeben
$navigation '';
if(
$p 1) {
$navigation .= '<a href="'.$_SERVER['SCRIPT_NAME'].'?p=' . ($p-1) . '&s=' .urlencode($s) . '">&laquo; Zur&uuml;ck</a>&nbsp;';
}
for(
$i $i <= $pages $i++) {
if(
$i == $p) {
$navigation .= '<b>'.$i.'</b>';
}else{
$navigation .= '&nbsp;<a href="'.$_SERVER['SCRIPT_NAME'].'?p=' $i '&s=' .urlencode($s) . '">'.$i.'</a>&nbsp;';
}
}
if(
$p $pages) {
$navigation .= '<a href="'.$_SERVER['SCRIPT_NAME'].'?p=' . ($p+1) . '&s=' .urlencode($s) . '">&nbsp;Weiter &raquo;</a>';
}
echo 
'<br /><br />' $navigation;
}
}
echo 
'</div>';

?>

<!-- Ende der Ergebnisverarbeitung -->

<!-- Beginn Footer/Seitenende -->
<br /><br />
<div align=center>
Suchscript &copy; 2012 by <a href="http://bilderup.de" target="_blank">Chris Dimperl</a>
</div>
</body>
</html>
<!-- Ende Footer/Seitenende -->


Gruß Chris


"Die Wahrheit wird oft verdunkelt, doch sie erlischt nie"

Livius

Post wurde schon 2x editiert, das letzte mal am 30.09.2015 um 17:32 von Andavos
29.08.2012, 01:57 Profil | PM | Homepage | E-Mail  
grillbude
Mitglied
Neuling


Dabei seit: 26.01.2015
Herkunft: keine Angabe
Posts: 1
      Zitat | Bearbeiten

Hallo Chris,

wäre es möglich wenn du dein Script Aktualisierst auf PHP 5.6 ?

Denn mein Server bietet schon 5.6 an, und bei mir erscheinen nur noch dauernd Fehler...

[quote]Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in /home/localxi/www/mitsu-club.ch/script/sufu.php on line 144
Sie haben keinen Suchbegriff eingegeben[/quote]


26.01.2015, 21:19 Profil | PM | E-Mail  
FalkenaugeMihawk
Mitglied
Perfekter User


Dabei seit: 05.06.2010
Herkunft: Schweiz
Posts: 2613
      Zitat | Bearbeiten

[quote]Orginal von grillbude
Hallo Chris,

wäre es möglich wenn du dein Script Aktualisierst auf PHP 5.6 ?

Denn mein Server bietet schon 5.6 an, und bei mir erscheinen nur noch dauernd Fehler...

[quote]Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in /home/localxi/www/mitsu-club.ch/script/sufu.php on line 144
Sie haben keinen Suchbegriff eingegeben[/quote]
[/quote]
Das liegt nicht an PHP, sondern an dir. Du hast das Script fehlerhaft für MySQLi umgeschrieben. Schau dir das PHP Handbuch zu mysqli_real_escape_string() mal genau an. Die Fehlermeldung sagt ja aus, dass du nur einen Parameter übergibst aber zwei erwartet werden.




Post wurde schon 1x editiert, das letzte mal am 26.01.2015 um 23:17 von FalkenaugeMihawk
26.01.2015, 23:17 Profil | PM | E-Mail  
Paddymysterio
Mitglied
Neuling


Dabei seit: 30.03.2018
Herkunft: keine Angabe
Posts: 1
      Zitat | Bearbeiten

Hallo Chris,

Das script ist klasse, folgende Fragen habe ich:

Wie kann ich die Schriftgröße der Ergebnisse ändern?
Wäre es möglich für die ausgegebenen Ergebnisse eine Copy and paste Funktion zuz machen je einzelnes Ergebnis?


30.03.2018, 23:38 Profil | PM | E-Mail  
chris
Mitglied
Guter User


Dabei seit: 27.07.2009
Herkunft: Bayern
Posts: 254
      Zitat | Bearbeiten

Servus,

die Ergebnisse kannst Du ja formatieren wie Du willst Ob Du die nun in eine Tabelle packst oder in ein Div, bleibt Deiner Kreativität überlassen oder ob Du vor die Ergebnisse ein <font style="font-size:24px;"> dran machst odas das Div lieber im CSS-Teil oben formatierst.

In deinem Fall wäre die Zeile 168 wie folgt zu ändern:

Von:
 PHP 
1:
2:

echo $row->spaltenname . '<br />';


Zu:
 PHP 
1:
2:

echo '<font style="font-size:24px;">' . $row->spaltenname . '</font><br />';


Wobei die 24px jetzt nur ein zufälliger Wert ist. Den kannst Du dann jederzeit beliebig anpassen

Zu der Copy&Paste-Funktion gibt es auch sehr hilfreiche Websites:

https://css-tricks.com/copy-paste-the-web/

Gruß Chris


"Die Wahrheit wird oft verdunkelt, doch sie erlischt nie"

Livius

Post wurde schon 1x editiert, das letzte mal am 05.04.2018 um 18:11 von chris
05.04.2018, 18:10 Profil | PM | Homepage | E-Mail  
Seiten (1):  1 
PHP-Support.de » Programmierung » PHP & MySQL » Codeschnipsel » Alte Codeschnipsel » Einfaches Suchscript mit Blätterfunktion   

Neues Thema | Antworten   


Powered by Command Board 1.0 - Beta 2.0 © 2004-08 PHP-Einfach | Impressum | Datenschutz