myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

[PHP/MySQL]News system mit seiten

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 14.05.10, 14:02   #1
frank00900
Erfahrener Zocker
 
Benutzerbild von frank00900
 
Registriert seit: Feb 2010
Ort: Nuketown
Beiträge: 236
Bedankt: 51
frank00900 ist noch neu hier! | 0 Respekt Punkte
Standard [PHP/MySQL]News system mit seiten

Meine Homepage hat jetzt ein neues Design damit das jetzt noch übersichtlich bleib bei den News will ich mehrere Seiten haben wie in ein Forum.
Code vom News System:
<?
session_start();
include ("checkuser.php");
echo '<div id="mitte" align="center">';

include ("includes/db_config.php");

$sql = "SELECT * FROM news ORDER BY ID DESC";

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}

echo 'News:'."<br>";
echo '<p></p>';

while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo '<strong>'.'Autor: '.'</strong>'.$zeile['autor'].'<br>';
echo '<strong>'.'Title: '.'</strong>'.$zeile['titel'];
echo '<p>'.$zeile['news'].'<p>';
echo $zeile['datum'].'<br>';
echo "<a href='forum/news_forum/view_topic.php?id=". $zeile['ID']. "'>Kommentar schreiben</a>".'<br>';
echo'<p></p>'.'<br>';

}

echo '</div>';
echo '</div>';
mysql_free_result( $db_erg );
?>


Ich will das nur 5 News pro Seite angezeigt werden !
Wie mache ich das jetzt ?
frank00900 ist offline   Mit Zitat antworten
Ungelesen 14.05.10, 14:58   #2
januschka
Anfänger
 
Registriert seit: Jan 2010
Beiträge: 23
Bedankt: 4
januschka ist noch neu hier! | 0 Respekt Punkte
Standard

Wenn du möchtest werde ich dir weiterhelfen wie bei deinem letzten Thema.

Ich werde dir heute abend eine Persönliche Nachricht schreiben...jetzt habe ich keine Zeit.

Aber schon mal für den Anfang...ermittel zuerst mal wieviel Datensätze es sind und baue dir schon mal eine Linkleiste mit den Seitenzahlen.

Gruß

januschka
januschka ist offline   Mit Zitat antworten
Ungelesen 14.05.10, 15:32   #3
frank00900
Erfahrener Zocker
 
Benutzerbild von frank00900
 
Registriert seit: Feb 2010
Ort: Nuketown
Beiträge: 236
Bedankt: 51
frank00900 ist noch neu hier! | 0 Respekt Punkte
Standard

ok Danke
frank00900 ist offline   Mit Zitat antworten
Ungelesen 14.05.10, 20:02   #4
Irolight
Newbie
 
Registriert seit: Feb 2010
Beiträge: 70
Bedankt: 7
Irolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt PunkteIrolight leckt gerne myGully Deckel in der Kanalisation! | 496004 Respekt Punkte
Standard

Mach einfach folgendes:
mittels
Code:
SELECT count(*) as Anzahl FROM news
Holst du dir erst mal die Gesamt Anzahl deiner News, teilst das durch 5 und rundest auf (floor()) (man kann es auch gleich alles in der Abfrage machen, wie man will). Und kannst ohne stress mit einer schleife eine Pagination aufbauen.
Dann übergibst du mittels der URI (z.b. &seite=2 -> $_GET["Seite"]) deine Seitezahl und fügst deiner MYSQL abfrage noch den Punkt
Code:
LIMIT " . ($_GET["Seite"]*5) . ", " . ($_GET["Seite"]*5+5)
hinzu fertig
Irolight ist offline   Mit Zitat antworten
Ungelesen 14.05.10, 22:08   #5
januschka
Anfänger
 
Registriert seit: Jan 2010
Beiträge: 23
Bedankt: 4
januschka ist noch neu hier! | 0 Respekt Punkte
Standard

Ist aber ne ganz schlechte Lösung.
Mit floor() rundest du auch nicht auf sondern ab..man rundet mit ceil() auf.

Wo ist in deinem S***** die Linkleiste für die Seiten ?

und mit $_GET würde ich es schon gar nicht machen nur mit $_POST.

Warum jedesmal beim Seitenauruf eine Datenbankabfrage ?

Mit deiner Abfrage nach:
Code:
SELECT count(*) as Anzahl FROM news
must du jedesmal zwei Datenbankabfragen machen....völlig unsinnig, und ein count holt man wenn überhaupt erforderlich (wofür gibt es in php die function: mysql_num_rows)
aus einer spalte nicht aus allen spalten einer tabelle.

man sollte sich schon angewöhnen sauber zu programmieren und unnötige datenbank-abfragen zu vermeiden...man überlege wenn 1000 oder 100.000 user auf ein mal das s***** nutzen.

Zitat:
Holst du dir erst mal die Gesamt Anzahl deiner News, teilst das durch 5 und rundest auf (floor()) (man kann es auch gleich alles in der Abfrage machen, wie man will)
Code:
SELECT count(*)AS Anzahl, * FROM news ORDER BY ID DESC
Wenn du bei dieser Abfrage ein Ergebnis bekommst, erhälst du von mir einen Orden, oder wie hast du es gemeint mit alles in der Abfrage ?
januschka ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:25 Uhr.


Sitemap

().