ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
417
417
EMPFEHLEN
-
Hallo, ich tüfftel schon seit tagen umher
Mein problem ist dass wenn ich die Seite aufrufe spuckt mir die datenbank alles aus ohne das ich eine suche gestartet habe und das möchte ich ja nicht sondern die abfrage sollen ja erst bei der sucheanfrage erfolgen. hier mal der code
Hier die suchanfrage in meiner search.phpPHP-Code:// Startet den Timer
$timer = startTime();
// Die aktuell angeforderte Seite
$seiteAktuell = $_GET['site'] + 0;
// Falls noch keine Seitenzahl übergeben wurde, den Wert auf die erste Seite setzen
if(empty($seiteAktuell))
$seiteAktuell = 1;
// Berechnet die nächsten Eintraege aus MAX_EINTRAEGE
$start = $seiteAktuell * $maxEintraege - $maxEintraege;
// Holt die aktuellen Datensätze aus - define("MAX_EINTRAEGE",10)
//$result = @mysql_query("SELECT * FROM suchmaschine LIMIT $start, ".$maxEintraege);
$searchSecure = @mysql_real_escape_string(stripslashes($_GET['search']));
$result = @mysql_query("SELECT * FROM suchmaschine WHERE words LIKE('%".$searchSecure."%') LIMIT $start, ".$maxEintraege) or die(mysql_error());
// Ermittelt die Gesamtzahl der Datensätze
//$resultGesamt = @mysql_query("SELECT COUNT(*) AS menge FROM suchmaschine");
$resultGesamt = @mysql_query("SELECT COUNT(*) AS menge FROM suchmaschine WHERE words LIKE('%".$searchSecure."%')");
$Eintraege = @mysql_result($resultGesamt,0,"menge");
// Errechnet die kompletten Seiten
$SitesComplete = ceil($Eintraege / $maxEintraege);
// Navigation mit in Ausgabe einfügen
$ausgabe = navigationsLeiste($SitesComplete,$seiteAktuell,$navLeiste);
$ausgabeText = makeText($ausgabe,$seiteAktuell,$href);
$ausgabeGraph = makeGraph($ausgabe,$seiteAktuell,$link,$grafik);
// Ausgabe der Seite
if(@mysql_num_rows($result)){
while($row = @mysql_fetch_array($result)){
$sout.='<table style="background-color:#FFFFCC; font-weight:normal; width:100%; cellspacing:0; cellpadding:0; border:0;">';
$sout.='<a href="'.$row[4].'">'.$row[3]. '</a> ' . '<a href="#" id="'.$row[5].'">' . '<img src="infos.png" width="18" height="18"></img></a>' . '</a><br />';
$sout.='<font color="#B8B8B8">'.$row[4].'</font>' . '<br />';
$sout.=$row[2];
$sout.='</table><br />';
}
}else{
$soute.='Ihre Suche ergab 0 Treffer<br />';
}
// Beendet den Timer
$endTime = endTime($timer);
$infoText = makeInfo($endTime,$seiteAktuell,$maxEintraege,$Eintraege,$infoText);
$leisteBottom = preg_replace("/{TABLENAVI}/", $ausgabeGraph . $ausgabeText, $tableNavi);
mysql_close();
?>
ergebnisausgabeHTML-Code:<form id='q' name='q' method='get' action='<?php echo $_SERVER['SCRIPT_SITE']; $href[1]; ?>'> <input id='search' type='text' name='search' value='<?php if (isset($_REQUEST['search'])) { $name = $_REQUEST['search']; echo htmlspecialchars($_REQUEST['search']); } ?>'><input class='searchbutton' type='submit' value='' /> </form>
Ungefähr 124 Ergebnisse (0.000 Sekunden)PHP-Code:<?PHP echo $sout; ?>
und ich hatte noch nicht einmal was eingegeben.
habe schon versucht mit:
zu spielen aber klappt nicht wie es sein soll.PHP-Code:$searchSecure = @mysql_real_escape_string(stripslashes($_GET['search']));
$result = @mysql_query("SELECT * FROM suchmaschine WHERE words LIKE('%".$searchSecure."%') LIMIT $start, ".$maxEintraege) or die(mysql_error());
wenn ich auf suche klicke kommt die suche ja auch wie sie soll und der findet auch wie er es soll aber wenn ich die suchseite aufrufe kommt immer wieder dass gleiche das der alles zeigt ohne sucheingabe.
hoffe konnte genug hinweise geben und ihr mir helfen.
danke in vorraus. :)
-
07.12.11 15:44 #2
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Gebe dem Submit-Button einen Namen und prüfe beim Aufruf der Seite ob dieser angeklickt wurde.
PHP-Code:if (isset($_GET['dein_name']) && isset($_GET['search']) {
// hier den Code um die Abfrage auszuführen und das Ergebnis anzuzeigen
}
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
Hier mal ein einfaches Beispiel zu DB-Ausgaben verbunden mit einem Filter-Formular
PHP-Code:<!-- Formular -->
<form action="?" method="post">
Text 1:<input type="text" name="text1" /><br />
Text 2:<input type="text" name="text2" /><br />
Zahl 3:<input type="text" name="zahl3" /><br />
<input type="submit" name="submit" />
</form>
<hr />
<?php
// Prüfen ob das Formular gesendet wurde
if(isset($_POST['submit'])){
// Array initializieren. Falls kein argument angegeben wurde,
// dann ist die Argumentliste ein leeres Array
$wheres = array();
//Jedes Feld prüfen und ggf in den Where-Array einfügen
if($_POST['text1']) $wheres[] = "text1='{$_POST['text1']}'";
if($_POST['text2']) $wheres[] = "text2='{$_POST['text2']}'";
if($_POST['zahl3']) $wheres[] = "zahl3={$_POST['zahl3']}";
// WHERE-Tel des SQL-String zusammenstellen
if(count($wheres)>0) $wherestring = "WHERE ".implode(' AND ', $wheres);
//SQL-String zusammensetzen
$sql = "SELECT * FROM mytable {$wherestring}";
//--------------------- TODO -----------------------
//TODO: Sql an die DB absetzen, Resultat auswerten und als Tabelle ausgeben
echo $sql;
}
?>---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Hallo tombe,
Danke für die schnelle Antwort.
ich habe so:
leider gibt es da ein fehlerPHP-Code:if (isset($_GET['s']) && isset($_GET['search']) {
// hier den Code um die Abfrage auszuführen und das Ergebnis anzuzeigen
<form id='q' name='q' method='get' action='<?php echo $_SERVER['SCRIPT_SITE']; $href[1]; ?>'>
<input id='search' type='text' name='search' value='<?php if (isset($_REQUEST['search'])) { $search = $_REQUEST['search']; echo htmlspecialchars($_REQUEST['search']); } ?>'><input name='s' class='searchbutton' type='submit' value='' />
</form>
}
Parse error: syntax error, unexpected '{'
-
07.12.11 16:08 #5
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Sorry da fehlt eine runde klammer am Ende:
Wobei du ja jetzt die Form ausblendest so bald die Seite per Klick auf den Suchen Button zusammen mit Suchbegriff aufgerufen wurde.PHP-Code:if (isset($_GET['s']) && isset($_GET['search'])) {
Du musst aber den Teil in den IF-Block packen wo die SQL-Anweisung ausgeführt und das Ergebnis angezeigt wird.
Siehe auch das Beispiel von Yaslaw!Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
Genau das wars Danke tombe,
nun ist es aber so wenn das feld -> input leer ist und enter drücke das der dann wieder alles aufgelistet.
@Yaslaw du liegst mit dem code schon richtig aber ich brauche nur 1 suchfeld und ausgaben sind 10 pro seite.. wenn ich als suche help eingebe kommt die ausgabe auch richtig aber wie gesagt drückt man enter ohne wort dann spuckt der die ganzen einträge aus.
ach tombe jetzt wo ich es gerade sehe
wenn man auf search.php kommt wo man ja die suche startet ist zwar nix mehr zu sehen aber er zeigt komischer weise noch
und die dazu gelisteten seiten anzahlUngefähr 124 Ergebnisse (0.000 Sekunden)
aber sonst liegen wa schon mal richtig1 2 3 4 5 6 7 Vorwärts
aber ich denke mal das liegt eher an was anderes, fleicht müsste man doch wie Yaslaw meint mit ein array arbeiten.
-
08.12.11 08:02 #7
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Ok, dann erweitern wir den IF-Block noch ein bisschen.
Du musst dir einfach mal deinen eigenen Code anschauen und dir dann überlegen was davon beim "normalen" Aufrufen der Seite und was nur beim "Suchen" ausgeführt werden darf.PHP-Code:if (isset($_GET['s']) && isset($_GET['search']) && trim($_GET['search']) != "") {
// und hier wieder dein Code
}
- Wenn die Seite normal aufgerufen wird, darf nur die Suchmaske angezeigt werden.
- Wenn die Seite mit Suchbegriff aufgerufen wird, nur dann dürfen die SQL-Anweisungen usw. durchgeführt werden.Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
Ähnliche Themen
-
Nicht alle Daten werden per POST übergeben
Von kavanin im Forum PHPAntworten: 11Letzter Beitrag: 07.07.10, 13:00 -
Gästebuch Einträge unsichtbar, werden aber aufgelistet!
Von ClouD361 im Forum PHPAntworten: 6Letzter Beitrag: 09.10.07, 20:42 -
Schriftarten werden nicht aufgelistet
Von ezias im Forum Office-AnwendungenAntworten: 2Letzter Beitrag: 06.11.05, 16:42 -
Es werden nicht alle Daten aus DB ausgelesen
Von newwarrior im Forum PHPAntworten: 4Letzter Beitrag: 11.07.05, 18:24 -
Tubes werden nicht aufgelistet
Von Titania im Forum Sonstige Grafik-ProgrammeAntworten: 0Letzter Beitrag: 28.05.04, 17:28





Zitieren



Login






[PHP][Snippet] Array zu XML konvertieren