fundstelle markieren
mehmet
- php
hallo forum
leider komme ich nicht weiter!
koennte einer mir bitte eine lösung vorschlagen
hier der code:
#####################################################################
<?
function getUser($suchfeld, $page)
{
$tbl = "uplift_iata";
$a1 = "iata";
$b1 = "icao";
$c1 = "location";
$d1 = "airport";
$e1 = "country";
$f1 = "city";
$page = (int) $page;
if ($page <= 0) $page=1;
if(!empty($suchfeld)) {
$suchfeld = trim($suchfeld);
$suchfeld = str_replace(" ","%",$suchfeld);
$suchfeld = "%".$suchfeld."%";
$sql = "SELECT * FROM $tbl
WHERE
$a1 LIKE '$suchfeld' OR
$b1 LIKE '$suchfeld' OR
$c1 LIKE '$suchfeld' OR
$d1 LIKE '$suchfeld' OR
$e1 LIKE '$suchfeld' OR
$f1 LIKE '$suchfeld'";
} else {
$sql = "SELECT * FROM $tbl";
}
$res = mysql_query($sql);
$anz = mysql_num_rows($res);
$itperpage = 10;
$maxpages_int = (int) ($anz/$itperpage);
$maxpages_float = $anz/$itperpage;
if ( $maxpages_float > $maxpages_int ) {
$maxpages = (int)(($anz/$itperpage)+1);
} else {
$maxpages = (int)(($anz/$itperpage));
}
if ($page > $maxpages) $page = $maxpages;
$sql2 = $sql." ORDER BY $c1 ASC limit ".(($page-1)*$itperpage).",$itperpage";
$res2 = mysql_query($sql2);
$anz2 = @mysql_num_rows($res2); // $anz2 = @mysql_num_rows($res2); FEHLER UNTERDRÜCKEN MIT @
if($anz > 0) {
if(empty($suchfeld)) {
$head = "
<table width='500' border='0' cellspacing='1' cellpadding='1'>
<tr>
<td>
<strong>
Datensaetze Gesamt: $anz<br>
Datensaetze je Seite: $itperpage
</strong>
</td>
</tr>
</table>";
} else {
if($anz > 1) { $wortlaut = "wurden"; } else { $wortlaut = "wurde"; }
$head = "
<table width='500' border='0' cellspacing='1' cellpadding='1' >
<tr>
<td>
<strong>Mit Ihrer Suchabfrage $wortlaut $anz Treffer gelandet.
</strong>
</td>
</tr>
</table>
<br>";
}
$i = 0; // Eine Zählvariable für unterschiedliche Zeilenfarben
$navi_left = ""; // HTML - Teil der Navigation zum zurückblättern
$navi_right = ""; // HTML - Teil der Navigation zum weiterblättern
$userliste = ""; // HTML - Inhalt der Userliste
$show_navi = ""; // HTML – Beinhaltet die Navigation und das Suchfeld
// Start der WHILE Schleife
while ($row = mysql_fetch_array($res2, MYSQL_ASSOC)) {
// Hier wird die Zeilenhintergrundfarbe für jeden Datensatz festgelegt,
// dies dient der Ãœbersicht
if($i%2==0) { $trcolor = "#FFFFFF"; } else { $trcolor = "#DADADA"; }
if ($page > 1){
$navi_left = "<strong><input type=button value="«"
onClick="pageset($page-1)" style="WIDTH:25px"></strong>";
}
if ($page < $maxpages){
$navi_right = "<strong><input type=button value="»"
onClick="pageset($page+1)" style="WIDTH:25px"></strong>";
}
if(isset($_POST['suchfeld']) && !empty($_POST['suchfeld'])) {
$val_suchfeld = $_POST['suchfeld'];
} else {
$val_suchfeld = "";
}
$show_navi =
"
<form name='form1' method='post' action='sql14.php' style='margin:0px;padding:0px'>
<table width='500' border='0' cellspacing='1' cellpadding='1'>
<tr>
<td width='50%'>
<input type=button value="Seite" style="WIDTH:50px" onClick="pageset2()">
<input name='page' type='text' id='page' value='$page' style="WIDTH:60px">
von $maxpages $navi_left$navi_right
</td>
<td width='60%'>
<div align = 'right'>
Suchen: <input name='suchfeld' type='text' id='suchfeld' value = '$val_suchfeld' style="WIDTH:120px;HEIGHT:16px">
<input type=submit value="Finden" style="WIDTH:45px">
<input type=hidden name=page_no value="$page">
</div>
</td>
</tr>
</table>
</form>
";
$userliste = $userliste .
"
<tr bgcolor = '$trcolor'>
<td width='100'><div align='center'>$row[$a1]</div></td>
<td width='100'><div align='left'>$row[$b1]</div></td>
<td width='100'><div align='left'>$row[$c1]</div></td>
<td width='100'><div align='left'>$row[$d1]</div></td>
<td width='100'><div align='left'>$row[$e1]</div></td>
<td width='100'><div align='left'>$row[$f1]</div></td>
</tr>
";
$i++; // Zählschleife um 1 erhöhen
}// WHILE Schleife abschließen
} else {
$userliste = "
<br>
<br>
<br>
<tr>
<td colspan='5'><div align='center'>Keine Ergebnisse fuer Ihre Suche!<br><br>
<a href='sql14.php'>Zurueck zur Liste</a></div>
</td>
</tr>";
}
$fertig = "
<table width='500' border='0' cellspacing='1' cellpadding='1'>
<tr bgcolor='#FF9933'>
<td width='100'><div align='center'><strong>$a1</strong></div></td>
<td width='100'><div align='center'><strong>$b1</strong></div></td>
<td width='100'><div align='center'><strong>$c1</strong></div></td>
<td width='100'><div align='center'><strong>$d1</strong></div></td>
<td width='100'><div align='center'><strong>$e1</strong></div></td>
<td width='100'><div align='center'><strong>$f1</strong></div></td>
</tr>
$userliste
</table>
";
return $head.$show_navi.$fertig;
} // Funktion schließen – FERTIG
// Datenbankverbindung herstellen
$server = "localhost";
$user = "";
$pass = "";
$dbase = "";
$conn = @mysql_connect($server, $user, $pass);
if($conn) {
mysql_select_db($dbase, $conn);
} else {
die("Fehler, Verbindung konnte nicht hergestellt werden!");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Translation//EN">
<html>
<head>
<TITLE>Blaetterfunktion mit Navigator und Suchfunktion</TITLE>
<script language="JavaScript" type="text/javascript">
function pageset(wert)
{
document.form1.page_no.value = wert;
document.form1.submit();
}
function pageset2()
{
document.form1.page_no.value = document.form1.page.value;
document.form1.submit();
}
</script>
</head>
<body bgcolor="yellow">
<?
// Aufruf der Funktion getUser() mit Suchbegriff und Seitennummer
echo $show = getUser($_POST['suchfeld'],$_POST['page_no']);
// Fundstelle markieren
// $markiert = str_replace($suchfeld, "<b>".$suchfeld."</b>", $nichtmarkiert);
// echo $markiert;
// Sortieren
// Datensaetze je Seite aendern
?>
</body>
</html>
#####################################################################
die fundstelle soll in rot markiert werden
dank im voraus
gruss
mehmet
Hi,
im Prinzip (sorry, ich hab nur die letzten 5 Zeilen gelesen...) hast du doch die Markierung schon vorbereited, oder nicht?
$markiert = str_replace($suchfeld, "<b>".$suchfeld."</b>", $nichtmarkiert);
Ist das die tatsächliche Stelle? Wenn ja, dann nimm doch statt eines <b>-Elements einfach ein <span>-Element. Gib dem ganzen eine Klasse "fundstelle" und formatiere mittels CSS diese Klasse auf font-weight: bold und color: red.
Ist mir was entgangen? Woran hängst du sonst?
MfG
Rouven
hallo rouven
dank für deine rückmeldung
http://www.simsek-online.de/www/sql/sql15.php
hier der beispiel link
leider wird hier nichts markiert
gib mal "edd" ein
edd steht für flughäfen in deutschland
gruss
mehmet
Hi,
na ja, gut, ähm, du gibst die Datensätze mit $row[...] brav in der Tabelle aus, aber wo ist denn das das Replace? Das steht da unten einsam am Ende des Codes und noch dazu in Kommentarklammern.
Setz mal innerhalb der Schleife mit der du die Ergebnisse ausgibst ein replace rein.
MfG
Rouven
sorry :-)
wie meinst du das?
wo hin soll es rein
"
<tr bgcolor = '$trcolor'>
<td width='100'><div align='center'>$row[$a1]</div></td>
<td width='100'><div align='left'>$row[$b1]</div></td>
<td width='100'><div align='left'>$row[$c1]</div></td>
<td width='100'><div align='left'>$row[$d1]</div></td>
<td width='100'><div align='left'>$row[$e1]</div></td>
<td width='100'><div align='left'>$row[$f1]</div></td>
</tr>
";
...
// Fundstelle markieren
$markiert = str_replace($suchfeld, "<b>".$suchfeld."</b>", $nichtmarkiert);
wie denn
es will nicht
Na ja, wo könnte denn der Treffer sein?
<tr bgcolor = '$trcolor'>
<td width='100'><div align='center'>".replace($suchfeld, "<b>".$suchfeld."</b>", $row[$a1])</div></td>
...die anderen analog
MfG
Rouven
<td width='100'><div align='center'>".replace($suchfeld, "<b>".$suchfeld."</b>", $row[$a1])</div></td>
ähm ja, und dann machen wir nach dem ) noch wieder ein ." hin, damit auch die Syntax stimmt...
MfG
Rouven
es geht nicht!
"
<tr bgcolor = '$trcolor'>
<td width='100'><div align='center'>".replace($suchfeld, "<b>".$suchfeld."</b>", $row[$a1])."</div></td>
<td width='100'><div align='left'>".replace($suchfeld, "<b>".$suchfeld."</b>", $row[$a1])."</div></td>
<td width='100'><div align='left'>".replace($suchfeld, "<b>".$suchfeld."</b>", $row[$a1])."</div></td>
<td width='100'><div align='left'>".replace($suchfeld, "<b>".$suchfeld."</b>", $row[$a1])."</div></td>
<td width='100'><div align='left'>".replace($suchfeld, "<b>".$suchfeld."</b>", $row[$a1])."</div></td>
<td width='100'><div align='left'>".replace($suchfeld, "<b>".$suchfeld."</b>", $row[$a1])."</div></td>
</tr>
";
hier das ergebnis:
http://www.simsek-online.de/www/sql/sql15.php
*args*, ja, ist ja schon gut, ich meinte auch schon den richtigen Replace-Befehl...
str_replace, wie du es da auch schon ursprünglich stehen hattest...
MfG
Rouven
hallo rouven,
es will nicht!
###########################################################
$userliste = $userliste .
"
<tr bgcolor = '$trcolor'>
<td width='100'><div align='center'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$a1])."</div></td>
<td width='100'><div align='left'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$b1])."</div></td>
<td width='100'><div align='left'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$c1])."</div></td>
<td width='100'><div align='left'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$d1])."</div></td>
<td width='100'><div align='left'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$e1])."</div></td>
<td width='100'><div align='left'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$f1])."</div></td>
</tr>
";
############################################################
alles so eingedadelt wie du es beschrieben hast
woran kann es liegen?
gruss
mehmet
Hi,
könntest du dir bitte kurz vor der Schleife mal $suchfeld ausgeben lassen, am Besten nach dem Schema
echo "=".$suchfeld."="
und dann in den Quelltext (!) der HTML-Seite gucken was da steht, insbesondere Sonderzeichen und Zeilenumbrüche wären da interessant. Ich vermute ja irgendwie er findet den Suchtext nicht wieder. Das könntest du noch rausfinden, indem du stattdessen mal kurzfristig
str_replace($row[$a1], "<b>gefunden</b>", $row[$a1])
...
hinschreibst, um zu gucken ob er dir das dann überall ausgibt.
MfG
Rouven
komisch!
was finder er den hier?
#############################################
$userliste = $userliste .
"
<tr bgcolor = '$trcolor'>
<td width='100'><div align='center'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$a1])."</div></td>
<td width='100'><div align='left'>".str_replace($row[$b1], "<b>gefunden</b>", $row[$b1])."</div></td>
<td width='100'><div align='left'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$c1])."</div></td>
<td width='100'><div align='left'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$d1])."</div></td>
<td width='100'><div align='left'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$e1])."</div></td>
<td width='100'><div align='left'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$f1])."</div></td>
</tr>
";
#############################################
http://www.simsek-online.de/www/sql/sql15.php
komisch!
was finder er den hier?
Na ja, im ersten Fall findet er wohl mal NULL-Werte. Prüfst du eigentlich deinen Parameter nach der Übergabe, so ob da überhaupt und wenn ja was sinnvolles drinsteht?
Also sorry, aber ich kann mir das nicht alles überlegen. Bitte beschreib mal den kompletten Ablauf, wie heißt das Suchfeld, wie liest du die übergebenen Parameter aus und wie/wann/wo kommt jetzt diese von dir gepostete Funktion zum Einsatz. Nach Möglichkeit formatierst du den Quellcode nochmal etwas (so schön einrücken und so) und postest das Gesamte nochmal hier, so hab ich jetzt dutzende Bruchstücke aber immer noch kein Gesamtkonstrukt.
Wie Syntaxhighlighting hier funktioniert steht in der Hilfe.
MfG
Rouven
hallo rouven,
zum testen mein_link
als suchbegriff kann man zb. "edd" eigeben
(zeige alle flüghäfen in deutschland)
hier der code
<?
function getUser($suchfeld, $page)
{
$tbl = "uplift_iata";
$a1 = "iata";
$b1 = "icao";
$c1 = "location";
$d1 = "airport";
$e1 = "country";
$f1 = "city";
$page = (int) $page;
if ($page <= 0) $page=1;
if(!empty($suchfeld)) {
$suchfeld = trim($suchfeld);
$suchfeld = str_replace(" ","%",$suchfeld);
$suchfeld = "%".$suchfeld."%";
$sql = "SELECT * FROM $tbl
WHERE
$a1 LIKE '$suchfeld' OR
$b1 LIKE '$suchfeld' OR
$c1 LIKE '$suchfeld' OR
$d1 LIKE '$suchfeld' OR
$e1 LIKE '$suchfeld' OR
$f1 LIKE '$suchfeld'";
} else {
$sql = "SELECT * FROM $tbl";
}
$res = mysql_query($sql);
$anz = mysql_num_rows($res);
$itperpage = 10;
$maxpages_int = (int) ($anz/$itperpage);
$maxpages_float = $anz/$itperpage;
if ( $maxpages_float > $maxpages_int ) {
$maxpages = (int)(($anz/$itperpage)+1);
} else {
$maxpages = (int)(($anz/$itperpage));
}
if ($page > $maxpages) $page = $maxpages;
$sql2 = $sql." ORDER BY $c1 ASC limit ".(($page-1)*$itperpage).",$itperpage";
$res2 = mysql_query($sql2);
$anz2 = @mysql_num_rows($res2); // $anz2 = @mysql_num_rows($res2); FEHLER UNTERDRÜCKEN MIT @
if($anz > 0) {
if(empty($suchfeld)) {
$head = "
<table width='500' border='0' cellspacing='1' cellpadding='1'>
<tr>
<td>
<strong>
Datensaetze Gesamt: $anz<br>
Datensaetze je Seite: $itperpage
</strong>
</td>
</tr>
</table>";
} else
{
if($anz > 1) { $wortlaut = "wurden"; } else { $wortlaut = "wurde"; }
$head = "
<table width='500' border='0' cellspacing='1' cellpadding='1' >
<tr>
<td>
<strong>Mit Ihrer Suchabfrage $wortlaut $anz Treffer gelandet.</strong>
</td>
</tr>
</table>
<br>";
}
$i = 0; // Eine Zählvariable für unterschiedliche Zeilenfarben
$navi_left = ""; // HTML - Teil der Navigation zum zurückblättern
$navi_right = ""; // HTML - Teil der Navigation zum weiterblättern
$userliste = ""; // HTML - Inhalt der Userliste
$show_navi = ""; // HTML – Beinhaltet die Navigation und das Suchfeld
//echo "=".$suchfeld."=" // ************** rouven
// Start der WHILE Schleife
while ($row = mysql_fetch_array($res2, MYSQL_ASSOC)) {
// Hier wird die Zeilenhintergrundfarbe für jeden Datensatz festgelegt,
// dies dient der Ãœbersicht
if($i%2==0) { $trcolor = "#FFFFFF"; } else { $trcolor = "#DADADA"; }
if ($page > 1){
$navi_left = "<strong><input type=button value=\"«\"
onClick=\"pageset($page-1)\" style=\"WIDTH:25px\"></strong>";
}
if ($page < $maxpages){
$navi_right = "<strong><input type=button value=\"»\"
onClick=\"pageset($page+1)\" style=\"WIDTH:25px\"></strong>";
}
if(isset($_POST['suchfeld']) && !empty($_POST['suchfeld'])) {
$val_suchfeld = $_POST['suchfeld'];
} else {
$val_suchfeld = "";
}
$show_navi =
"
<form name='form1' method='post' action='sql14.php' style='margin:0px;padding:0px'>
<table width='500' border='0' cellspacing='1' cellpadding='1'>
<tr>
<td width='50%'>
<input type=button value=\"Seite\" style=\"WIDTH:50px\" onClick=\"pageset2()\">
<input name='page' type='text' id='page' value='$page' style=\"WIDTH:60px\">
von $maxpages $navi_left$navi_right
</td>
<td width='60%'>
<div align = 'right'>
Suchen: <input name='suchfeld' type='text' id='suchfeld' value = '$val_suchfeld' style=\"WIDTH:120px;HEIGHT:16px\">
<input type=submit value=\"Finden\" style=\"WIDTH:45px\">
<input type=hidden name=page_no value=\"$page\">
</div>
</td>
</tr>
</table>
</form>
";
$userliste = $userliste .
"
<tr bgcolor = '$trcolor'>
<td width='100'><div align='center'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$a1])."</div></td>
<td width='100'><div align='left'>".str_replace($row[$b1], "<b>gefunden</b>", $row[$b1])."</div></td>
<td width='100'><div align='left'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$c1])."</div></td>
<td width='100'><div align='left'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$d1])."</div></td>
<td width='100'><div align='left'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$e1])."</div></td>
<td width='100'><div align='left'>".str_replace($suchfeld, "<b>".$suchfeld."</b>", $row[$f1])."</div></td>
</tr>
";
$i++; // Zählschleife um 1 erhöhen
}
// WHILE Schleife abschließen
} else
{
$userliste = "
<br>
<br>
<br>
<tr>
<td colspan='5'><div align='center'>Keine Ergebnisse fuer Ihre Suche!<br><br>
<a href='sql14.php'>Zurueck zur Liste</a></div>
</td>
</tr>";
}
$fertig = "
<table width='500' border='0' cellspacing='1' cellpadding='1'>
<tr bgcolor='#FF9933'>
<td width='100'><div align='center'><strong>$a1</strong></div></td>
<td width='100'><div align='center'><strong>$b1</strong></div></td>
<td width='100'><div align='center'><strong>$c1</strong></div></td>
<td width='100'><div align='center'><strong>$d1</strong></div></td>
<td width='100'><div align='center'><strong>$e1</strong></div></td>
<td width='100'><div align='center'><strong>$f1</strong></div></td>
</tr>
$userliste
</table>
";
return $head.$show_navi.$fertig;
}
// Funktion schließen – FERTIG
// Datenbankverbindung herstellen
$server = "localhost";
$user = "";
$pass = "";
$dbase = "";
$conn = @mysql_connect($server, $user, $pass);
if($conn) {
mysql_select_db($dbase, $conn);
} else {
die("Fehler, Verbindung konnte nicht hergestellt werden!");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Translation//EN">
<html>
<head>
<TITLE>Blaetterfunktion mit Navigator und Suchfunktion</TITLE>
<script language="JavaScript" type="text/javascript">
function pageset(wert)
{
document.form1.page_no.value = wert;
document.form1.submit();
}
function pageset2()
{
document.form1.page_no.value = document.form1.page.value;
document.form1.submit();
}
</script>
</head>
<body bgcolor="yellow">
<?
// Aufruf der Funktion getUser() mit Suchbegriff und Seitennummer
echo $show = getUser($_POST['suchfeld'],$_POST['page_no']);
// Fundstelle markieren
// $markiert = str_replace($suchfeld, "<b>".$suchfeld."</b>", $nichtmarkiert);
// echo $markiert;
// Sortieren
// Datensaetze je Seite aendern
?>
</body>
</html>
gruss
mehmet
Hi,
$suchfeld = str_replace(" ","%",$suchfeld);
$suchfeld = "%".$suchfeld."%";
die hier sind dein Problem. Du veränderst den Wert den du vom Suchfeld empfängst. Du solltest eine Trennung vornehmen von der originalen Eingabe (die du auch später für das replace verwendest) und der tatsächlichen Suche mit allen Wildcards etc.
BTW: Du arbeitest mit aktivierten register_globals. Das könnte dir bei einem Webspace-Wechsel mal Probleme machen bzw. stellt ein Sicherheitsproblem da.
MfG
Rouven
hallo rouven,
leider bin in php nicht ganz fit wie du (lerne noch)
nach deinem bericht her habe wohl mehrer $suchfeld definiert
jetzt habe ich den salat... (*grr)
welches $suchfeld muss verändert werden
könntest du diese bitte so darstellen, dass es funtioniert
ich weiss, dass dies für dich zeitraubend sein kann
sei jedoch zuversichtlich, dass ich sehr lange dran sitze
schon kleine hinweise sind für mich sehr hilfreich
dann kommt noch die geschichte mit register_globals
keine ahnung was das sein soll
muss mich noch rein lesen
auch hier, dank dir für deinen hinweis
gruss
mehmet
Hi,
// das hier ist SQL-spezifisch
$sql_criterium = str_replace(" ","%",$suchfeld);
$sql_criterium= "%".$sql_criterium."%";
// hier noch zur Sicherheit gegen ungültige Zeichen etc., vgl
// Sicherheit 1
// Sicherheit 2
// mysql_real_escape_string
$sql_criterium = mysql_real_escape_string($sql_criterium);
$sql = "SELECT * FROM $tbl
WHERE
$a1 LIKE '$sql_criterium' OR
$b1 LIKE '$sql_criterium' OR
$c1 LIKE '$sql_criterium' OR
$d1 LIKE '$sql_criterium' OR
$e1 LIKE '$sql_criterium' OR
$f1 LIKE '$sql_criterium'";
} else {
$sql = "SELECT * FROM $tbl";
}
MfG
Rouven
hallo rouven
hmm.. mein knowhow reicht lediglich bis zu html
achso, ich kann auch bereits kommentieren in php :-)
ich kriege das einfach nicht hin
koenntest du diese bitte nicht fertigstellen
es sind einfach zuviele codes
ich moechte es jetzt nicht kaputt machen
das waehre echt toll
achso, sehr wichtig
frohe ostern :-)
gruss
mehmet
Hi Mehmet,
ähm, sorry, aber im Prinzip hattest du jetzt wirklich alles was du brauchst, du musst die Teile nur noch wieder zusammensetzen. Wenn ich jedem den Code fertig zusammenbaue schaffe ich ja gar nichts anderes mehr, du brauchst nur die Blöcke zusammenzusetzen und dann zu gucken ob es klappt oder nicht. Wenn du mit dem Register-Globals-Zeug im Moment nichts anfangen kannst ist das ja noch nicht weiter schlimm. Gegen alles andere hilft nur: lesen, schauen, ausprobieren - Vor allem: _Verstehen_ was da passiert und nicht nur den Code übernehmen. Schau dir halt zwischenzeitig mit echo mal an, was in deinen Variablen steht, dann siehst du auch was schiefläuft.
In deinem Beispiel:
In der Suchmaske: "abc"
Am Anfang des Skriptes: "abc"
-> Ergänzen der %-Wildcards: "%abc%"
-> Datenbankabfrage: "... LIKE '%abc%'" -> Treffer ergeben sich, die irgendwo abc enthalten, z.B. "abcde"
-> Nun kommt das Replace, das leider den Suchstring der Datenbank verwendet:
REPLACE("%abc%", "<b>%abc%</b>", "abcde"). Das kann natürlich nichts finden...
MfG
Rouven
hallo rouven
grundsaetzlich hast du recht
du weiss ja, dass ich es mehrmals versucht habe
ich habe all deine anweisungen verfolgt und
deiner instruktion folgegeleistet
es will einfach nicht gehen
wenn es nur laufen wuerde, koennte ich damit besser experimentieren
somit besser verstehen
gruss
mehmet
hallo rouven
hast du mich vergessen 8-)
das waehr toll, wenn du mir tatkräftig helfen könntest 8-)
herzliche grüsse
Hallo.
hast du mich vergessen 8-)
Oder mag das Schweigen mit dem Aussagewert von "es will einfach nicht gehen" zusammenhängen? Veröffentliche hier deinen bisherigen Code und die sich daraus ergebenden Fehlermeldungen sowie gegebenfalls Umgebungsparameter, wenn du mit unterschiedlichen Systemen oder Versionen getestet hast.
MfG, at
hallo at
herzlichen dank für deine interesse
ich hatte das code zwei mal komplett dargestellt
ich sollte paar sachen machen die ich auch (versucht habe) gemacht habe
zu meinem bedauern musste ich allerdings zusätzliche änderungenen vornehmen, die allerding mein wissens- und verständnis horizont überschreitet
kenntnisse über html habe ich zu gute
php lerne ich jetzt kennen
verlangt wurde, dass ich die replace benutzen soll
keine ahnung wie ich sowas machen soll
ich habe natürlich viele variationen versucht ohne erfolg
bedauerlicherweise habe ich das problem nicht lösen können
hier nochmal der code
es soll also die fundstelle markiert werden z.b. rot und bold
hier der link in aktion:
TestSeite
gebe mal bitte "edd" ein für alle flughäfen in deutschland
herzliche grüsse
mehmet
#################################################################
<?
function getUser($suchfeld, $page)
{
$tbl = "uplift_iata";
$a1 = "iata";
$b1 = "icao";
$c1 = "location";
$d1 = "airport";
$e1 = "country";
$f1 = "city";
$page = (int) $page;
if ($page <= 0) $page=1;
if(!empty($suchfeld)) {
$suchfeld = trim($suchfeld);
$suchfeld = str_replace(" ","%",$suchfeld);
$suchfeld = "%".$suchfeld."%";
$sql = "SELECT * FROM $tbl
WHERE
$a1 LIKE '$suchfeld' OR
$b1 LIKE '$suchfeld' OR
$c1 LIKE '$suchfeld' OR
$d1 LIKE '$suchfeld' OR
$e1 LIKE '$suchfeld' OR
$f1 LIKE '$suchfeld'";
} else {
$sql = "SELECT * FROM $tbl";
}
$res = mysql_query($sql);
$anz = mysql_num_rows($res);
$itperpage = 10;
$maxpages_int = (int) ($anz/$itperpage);
$maxpages_float = $anz/$itperpage;
if ( $maxpages_float > $maxpages_int ) {
$maxpages = (int)(($anz/$itperpage)+1);
} else {
$maxpages = (int)(($anz/$itperpage));
}
if ($page > $maxpages) $page = $maxpages;
$sql2 = $sql." ORDER BY $c1 ASC limit ".(($page-1)*$itperpage).",$itperpage";
$res2 = mysql_query($sql2);
$anz2 = @mysql_num_rows($res2); // $anz2 = @mysql_num_rows($res2); FEHLER UNTERDRÜCKEN MIT @
if($anz > 0) {
if(empty($suchfeld)) {
$head = "
<table width='500' border='0' cellspacing='1' cellpadding='1'>
<tr>
<td>
<strong>
Datensaetze Gesamt: $anz<br>
Datensaetze je Seite: $itperpage
</strong>
</td>
</tr>
</table>";
} else {
if($anz > 1) { $wortlaut = "wurden"; } else { $wortlaut = "wurde"; }
$head = "
<table width='500' border='0' cellspacing='1' cellpadding='1' >
<tr>
<td>
<strong>Mit Ihrer Suchabfrage $wortlaut $anz Treffer gelandet.
</strong>
</td>
</tr>
</table>
<br>";
}
$i = 0; // Eine Zählvariable für unterschiedliche Zeilenfarben
$navi_left = ""; // HTML - Teil der Navigation zum zurückblättern
$navi_right = ""; // HTML - Teil der Navigation zum weiterblättern
$userliste = ""; // HTML - Inhalt der Userliste
$show_navi = ""; // HTML – Beinhaltet die Navigation und das Suchfeld
// Start der WHILE Schleife
while ($row = mysql_fetch_array($res2, MYSQL_ASSOC)) {
// Hier wird die Zeilenhintergrundfarbe für jeden Datensatz festgelegt,
// dies dient der Ãœbersicht
if($i%2==0) { $trcolor = "#FFFFFF"; } else { $trcolor = "#DADADA"; }
if ($page > 1){
$navi_left = "<strong><input type=button value=\"«\"
onClick=\"pageset($page-1)\" style=\"WIDTH:25px\"></strong>";
}
if ($page < $maxpages){
$navi_right = "<strong><input type=button value=\"»\"
onClick=\"pageset($page+1)\" style=\"WIDTH:25px\"></strong>";
}
if(isset($_POST['suchfeld']) && !empty($_POST['suchfeld'])) {
$val_suchfeld = $_POST['suchfeld'];
} else {
$val_suchfeld = "";
}
$show_navi =
"
<form name='form1' method='post' action='sql14.php' style='margin:0px;padding:0px'>
<table width='500' border='0' cellspacing='1' cellpadding='1'>
<tr>
<td width='50%'>
<input type=button value=\"Seite\" style=\"WIDTH:50px\" onClick=\"pageset2()\">
<input name='page' type='text' id='page' value='$page' style=\"WIDTH:60px\">
von $maxpages $navi_left$navi_right
</td>
<td width='60%'>
<div align = 'right'>
Suchen: <input name='suchfeld' type='text' id='suchfeld' value = '$val_suchfeld' style=\"WIDTH:120px;HEIGHT:16px\">
<input type=submit value=\"Finden\" style=\"WIDTH:45px\">
<input type=hidden name=page_no value=\"$page\">
</div>
</td>
</tr>
</table>
</form>
";
$userliste = $userliste .
"
<tr bgcolor = '$trcolor'>
<td width='100'><div align='center'>$row[$a1]</div></td>
<td width='100'><div align='left'>$row[$b1]</div></td>
<td width='100'><div align='left'>$row[$c1]</div></td>
<td width='100'><div align='left'>$row[$d1]</div></td>
<td width='100'><div align='left'>$row[$e1]</div></td>
<td width='100'><div align='left'>$row[$f1]</div></td>
</tr>
";
$i++; // Zählschleife um 1 erhöhen
}// WHILE Schleife abschließen
} else {
$userliste = "
<br>
<br>
<br>
<tr>
<td colspan='5'><div align='center'>Keine Ergebnisse fuer Ihre Suche!<br><br>
<a href='sql14.php'>Zurueck zur Liste</a></div>
</td>
</tr>";
}
$fertig = "
<table width='500' border='0' cellspacing='1' cellpadding='1'>
<tr bgcolor='#FF9933'>
<td width='100'><div align='center'><strong>$a1</strong></div></td>
<td width='100'><div align='center'><strong>$b1</strong></div></td>
<td width='100'><div align='center'><strong>$c1</strong></div></td>
<td width='100'><div align='center'><strong>$d1</strong></div></td>
<td width='100'><div align='center'><strong>$e1</strong></div></td>
<td width='100'><div align='center'><strong>$f1</strong></div></td>
</tr>
$userliste
</table>
";
return $head.$show_navi.$fertig;
} // Funktion schließen – FERTIG
// Datenbankverbindung herstellen
$server = "localhost";
$user = "";
$pass = "";
$dbase = "";
$conn = @mysql_connect($server, $user, $pass);
if($conn) {
mysql_select_db($dbase, $conn);
} else {
die("Fehler, Verbindung konnte nicht hergestellt werden!");
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Translation//EN">
<html>
<head>
<TITLE>Blaetterfunktion mit Navigator und Suchfunktion</TITLE>
<script language="JavaScript" type="text/javascript">
function pageset(wert)
{
document.form1.page_no.value = wert;
document.form1.submit();
}
function pageset2()
{
document.form1.page_no.value = document.form1.page.value;
document.form1.submit();
}
</script>
</head>
<body bgcolor="yellow">
<?
// Aufruf der Funktion getUser() mit Suchbegriff und Seitennummer
echo $show = getUser($_POST['suchfeld'],$_POST['page_no']);
// Fundstelle markieren
// $markiert = str_replace($suchfeld, "<b>".$suchfeld."</b>", $nichtmarkiert);
// echo $markiert;
// Sortieren
// Datensaetze je Seite aendern
?>
</body>
</html>
#################################################################