Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

SQL Problem

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Pretender
PostRank 9
PostRank 9
Beiträge: 1081
Registriert: 22.04.2004, 14:44
Wohnort: Naumburg

Beitrag von Pretender » 03.01.2006, 13:44

Moin Moin,

ich habe eine Suchabfrage gebastelt die aus einer SQL Datenbank die Treffer auf einer Seite ausgeben soll.

Da es ab und an vorkommt, daß sie Suche mehrere 100 Trefer ausgibt, wird die Seite recht lang und ich dachte mir: wäre nicht schlecht wenn man die Treffer auf mehrere Seiten ausgeben könnte und von der 1. Trefferliste mit einem <<next>> button auf die 2. Trefferseite linken.


So sieht bisher mein Code aus:

Code: Alles auswählen

<? include pass etc...?>
<form method="post" action="suche.php">
Suche Name<input type="text" input name="sname">
<input type="submit">
</form>

<?php
$fehler = "";
$sname = $_POST &#91;'sname'&#93;;
if &#40;empty&#40;$sname&#41;&#41; $fehler .="<br><br><br>Bitte geben Sie einen Suchbegriff ein";
if &#40;empty&#40;$fehler&#41;&#41; 
&#123;
$abfrage = mysql_query&#40;"SELECT * FROM tabelle1 WHERE title LIKE '%$sname%'"&#41;;
$num = mysql_num_rows&#40;$abfrage&#41;;
echo "Es wurden $num Datensätze gefunden!
<br><br>";
while&#40;$row = mysql_fetch_object&#40;$abfrage&#41;&#41;
&#123;
$name= $row -> name;
echo "
",$name,"";
&#125;

if&#40;$num == 0&#41;
&#123;
echo "nichts gefunden";
&#125;
&#125;
else echo "$fehler";
?>
Wie müsste der Code geändert werden um pro Seite z.B. 20 Namen auszugeben und mit einem Link (Next) auf die nächsten 20 Treffer zu linken?

mfg
Ralf

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Southmedia
PostRank 10
PostRank 10
Beiträge: 7322
Registriert: 20.07.2003, 19:56

Beitrag von Southmedia » 03.01.2006, 13:56

... LIKE '%$sname%' LIMIT $num, 20");

wobei $num die Startzahl ist, für die erste Seite also 0 wäre.

Pretender
PostRank 9
PostRank 9
Beiträge: 1081
Registriert: 22.04.2004, 14:44
Wohnort: Naumburg

Beitrag von Pretender » 03.01.2006, 14:10

THX für die schnelle Antwort!

Da ich nicht so fit bin was SQL angeht, kann ich damit jeze nicht allzuviel anfangen.

Code: Alles auswählen

<? include pass etc...?> 
<form method="post" action="suche.php"> 
Suche Name<input type="text" input name="sname"> 
<input type="submit"> 
</form> 

<?php 
$fehler = ""; 
$sname = $_POST &#91;'sname'&#93;; 
if &#40;empty&#40;$sname&#41;&#41; $fehler .="<br><br><br>Bitte geben Sie einen Suchbegriff ein"; 
if &#40;empty&#40;$fehler&#41;&#41; 
&#123; 
$abfrage = mysql_query&#40;"SELECT * FROM tabelle1 WHERE title LIKE '%$sname%' LIMIT $num, 20"&#41;; 
$num = mysql_num_rows&#40;$abfrage&#41;; 
echo "Es wurden $num Datensätze gefunden! 
<br><br>"; 
while&#40;$row = mysql_fetch_object&#40;$abfrage&#41;&#41; 
&#123; 
$name= $row -> name; 
echo " 
",$name,""; 
&#125; 

if&#40;$num == 0&#41; 
&#123; 
echo "nichts gefunden"; 
&#125; 
&#125; 
else echo "$fehler"; 
?> 
Irgendwie geht des net :oops: ich nehme an, das da noch was an anderer stelle eingebaut werden muss, nur leider weiss ich nicht was.

Könntest Du das eventuell, in das Script einbauen... wenn es nicht zu viel arbeit macht?

wäre supi fein

HW
PostRank 8
PostRank 8
Beiträge: 761
Registriert: 04.04.2004, 08:00
Wohnort: Viersen

Beitrag von HW » 03.01.2006, 14:46

..du musst der Variablen $num vorher einen Wert zuweisen.
Du benutzt die Variable in dem SQL-Statement und weißt erst nachher einen Wert zu.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag