php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.12.2004, 12:19  
Gast
 
Beiträge: n/a
Standard Seitenwechsel nach 25tem Datensatz

Hallo,

sorry wenn es jetzt kompliziert wird, aber ich weiß nicht wie ich es beschreiben soll.. eigentlich ist auch ganz einfach nur das Denkproblem nicht... also ein "sorry" schon mal vorab falls schon mal beschrieben.

Ich komme einfach nicht auf eine Denklösung.
Wenn ich eine Suche ausführe über alle Einträge in der DB,
dann können das ja unter Umständen 'n' Stück sein...
ich will aber den Besucher nicht erschlagen und ihm erstmal(z.B.) 25 anzeigen. Unten drunter dann die Seitenzahlen ... ker ihr wißt bestimmt was ich meine ....

Wie bekomme ich dann den Seitenwechsel hin? ... und wo bleibt er?
Führt man die Suche aus und schreibt die Links dazu in eine Tabelle?
Macht doch eigentlich keinen Sinn... der Server hat keinen Cache für so`n Kram... aber es kann doch nicht soo schwer sein

Also was ich Suche ist eigentlich ein kleines howto ... oder ein paar Anweisungen das ich mir unter Umständen den Code ergrübeln kann ..oder gleich den Code :wink: ...

Wäre für jeden sachdienlichen Hinweis dankbar!!

Schöne Grüße
Yog the mapper
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.12.2004, 12:24  
Gast
 
Beiträge: n/a
Standard

17.10. Ich habe eine Tabelle mit n Einträgen und möchte auf jeder Seite m davon anzeigen
http://www.php-faq.de/q/q-mysql-seitenweise.html

Gruß
phpfan
 
Alt 10.12.2004, 15:20  
Gast
 
Beiträge: n/a
Standard Lösung für Seitennavigation, einfach

Hallo Ihr,

bin zwar auch ein Anfänger in PHP und Mysq, aber ich habe mich mal hingesetzt, da ich die Lösungen die ich bisher gefunden habe einfach zu kompliziert sind. Deswegen mal von mir nen paar Zeilen Script, die Ihr hoffentlich einfach nachvollziehen könnt.
Ich hoffe der Code ist auch für Anfänger angenehm

Ganz am Anfang des Perlscriptes, also nach <?php sind folgende Zeilen einzubauen:

Code:
$seite = $_GET['seite'];
$anzahl_daten_pro_seite = "1000";
Im Script selbst müssen folgende Zeilen eingefügt werden:

Code:
$sql = "USE DATENBANKNAME";
sql_query("Umschalten auf DB", $sql, $conn);

// Anzahl Datensätze herausfinden

$anfrage = "SELECT * FROM Tabellenname"; // Hier später Cookiewerte eintragen
$ergebnis = mysql_query($anfrage) or die ("FEHLER=".mysql_error());
$gesamtzahl_datensaetze = mysql_num_rows($ergebnis);

// maximale Anzahl an Seiten

$max_seiten = $gesamtzahl_datensaetze / $anzahl_daten_pro_seite;
$max_seiten = ceil($max_seiten);

// Seite_von und Seite_bis ausrechnen

for ($i=1; $i<=$max_seiten; $i++) {
	if ($i == 1) {
		$seite_von[$i] = 1;
	}
	if ($i > 1) {
		$vorgaenger = $i - 1;
		$seite_von[$i] = $vorgaenger * $anzahl_daten_pro_seite;
	}
	$seite_bis[$i] = $i * $anzahl_daten_pro_seite;
}

if ($seite == "") {
	$seite = 1;
	$sql = "SELECT * FROM Tablle ORDER BY sortiert_nach_was_auch_immer ASC LIMIT $seite_von[$seite],$anzahl_daten_pro_seite";
}

else {
	$sql = "SELECT * FROM Tabelle ORDER BY sortiert_nach_was_auch_immer ASC LIMIT $seite_von[$seite],$anzahl_daten_pro_seite";
}

$result = sql_query("", $sql, $conn);
if ($result) {
	echo "<body>";
	echo "

Seite";
	for ($i=1; $i<=$max_seiten; $i++) {
		echo "<a class=\"link\" href=\"ausgabe.php?seite=$i\">$i</a>";
	}
	echo "</p>";
	$number = mysql_num_rows($result);
   	while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
                  echo (rows ausgeben);
               }
}
?>
Script wurde so bei mir getestet und läuft auch
Support und Hilfestellung gebe ich gern hier im Forum oder per Mail: webmaster@german-sound.de

Gruß zeusel
 
Alt 13.12.2004, 08:38  
Gast
 
Beiträge: n/a
Standard

Klasse, vielen Dank an euch...
genau sowas habe ich gebraucht.

Jetzt muss ich es erstmal auseinander nehmen, denn will ja lernen welche Möglichkeiten es gibt.

Nochmals vielen Dank

Yog
 
Alt 13.12.2004, 09:06  
Gast
 
Beiträge: n/a
Standard

Hallo Yog,

hoffe kommst mit dem Code klar, wenn nicht frag halt einfach einige andere fanden das ja nen bisserl blöde, dass ich den Quellcode gepostet habe, aber ist doch schön, wenn man anderen damit helfen kann
 
Alt 13.12.2004, 10:13  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von zeusel
Hallo Yog,

hoffe kommst mit dem Code klar, wenn nicht frag halt einfach einige andere fanden das ja nen bisserl blöde, dass ich den Quellcode gepostet habe, aber ist doch schön, wenn man anderen damit helfen kann
Ich meine, ich hätte dir auch eine Begründung dafür gegeben, dass dein Quellcode nichts bringt. Da steht zum einen zuviele Select * drin, zum anderen gibt es die Funktion sql_query nicht. Das muss also eine eigene Funktion sein und somit kann kein Mensch was mit dem Code anfangen.

Gruß
phpfan
 
Alt 13.12.2004, 13:12  
Gast
 
Beiträge: n/a
Standard Was vergessen...

Stimmt die Funktion sql_query muß noch eingetragen werden. Dazu bitte folgendes ergänzen:

Code:
$conn   = @mysql_connect($server, $user, $pass);

function sql_query($success, $sql, $conn) {
  $result = mysql_query($sql, $conn);
  if ($result) {
     echo "

$success.";
  } else {
     echo "

".mysql_error($conn);
  }
  return $result;
}

$sql = "USE DATENBANKNAME"; 
sql_query("Umschalten auf DB", $sql, $conn); 

// Anzahl Datensätze herausfinden 

$anfrage = "SELECT * FROM Tabellenname"; // Hier später Cookiewerte eintragen 
$ergebnis = mysql_query($anfrage) or die ("FEHLER=".mysql_error()); 
$gesamtzahl_datensaetze = mysql_num_rows($ergebnis); 

// maximale Anzahl an Seiten 

$max_seiten = $gesamtzahl_datensaetze / $anzahl_daten_pro_seite; 
$max_seiten = ceil($max_seiten); 

// Seite_von und Seite_bis ausrechnen 

for ($i=1; $i<=$max_seiten; $i++) { 
   if ($i == 1) { 
      $seite_von[$i] = 1; 
   } 
   if ($i > 1) { 
      $vorgaenger = $i - 1; 
      $seite_von[$i] = $vorgaenger * $anzahl_daten_pro_seite; 
   } 
   $seite_bis[$i] = $i * $anzahl_daten_pro_seite; 
} 

if ($seite == "") { 
   $seite = 1; 
   $sql = "SELECT * FROM Tablle ORDER BY sortiert_nach_was_auch_immer ASC LIMIT $seite_von[$seite],$anzahl_daten_pro_seite"; 
} 

else { 
   $sql = "SELECT * FROM Tabelle ORDER BY sortiert_nach_was_auch_immer ASC LIMIT $seite_von[$seite],$anzahl_daten_pro_seite"; 
} 

$result = sql_query("", $sql, $conn); 
if ($result) { 
   echo "<body>"; 
   echo "

Seite"; 
   for ($i=1; $i<=$max_seiten; $i++) { 
      echo "<a class=\"link\" href=\"ausgabe.php?seite=$i\">$i</a>"; 
   } 
   echo "</p>"; 
   $number = mysql_num_rows($result); 
      while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
                  echo (rows ausgeben); 
               } 
} 
?>
Zu den Select * Anweisungen: nicht alle werden immer ausgeführt, Quelltext am besten einmal genau ansehen, dann meckern. Und wie gesagt bei mir läuft das Script ohne Probleme. Mit der SQL-query Funktion stimmte, die fehlte natürlich...vergessen zu kopieren
Beweise? Kann gern ne jpg-Datei posten
 
Alt 13.12.2004, 13:17  
Gast
 
Beiträge: n/a
Standard

Ich sage nicht, dass das Script nicht funktioniert, ich sage, dass Select * Käse ist! Siehe

16.14. Warum soll ich nicht SELECT * schreiben?
http://www.php-faq.de/q/q-sql-select.html

Gruß
phpfan
 
Alt 13.12.2004, 13:25  
Gast
 
Beiträge: n/a
Standard

Vielleicht hast Du nen anderen Tip, wie man dann ALLE Datensätze auslesen könnte um letztendlich die Anzahl derer zu bestimmen!? Wenn ja poste das doch, dann wird der Quellcode verbessert
 
Alt 13.12.2004, 13:26  
Gast
 
Beiträge: n/a
Standard

$anfrage = "SELECT COUNT(ein_spaltenname) FROM Tabellenname";
$ergebnis = mysql_query($anfrage) or die ("FEHLER=".mysql_error());
$gesamtzahl_datensaetze = mysql_result($ergebnis,0);

Gruß
phpfan
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bei UPDATE erkennen, ob der Datensatz existiert? Anotherone Datenbanken 7 01.04.2008 14:49
Wieso wird nur ein Datensatz angezeigt? Minimi Datenbanken 14 08.02.2008 02:54
auf nächsten Datensatz zugreifen cycap Datenbanken 5 18.12.2007 14:32
Datensatz zu max() simsalabim Datenbanken 8 02.10.2007 08:56
datensatz problem 24bits PHP Tipps 2006 1 30.08.2006 18:52
einen variablen datensatz löschen PHP Tipps 2007 3 04.11.2005 12:41
nächsten datensatz bei klick auf button weiter... PHP Tipps 2005-2 1 14.08.2005 12:19
Überprüfen, ob MySQL query einen Datensatz liefert Jojo1 PHP Tipps 2005 14 22.04.2005 17:22
Datensatz ändern funktioniert nicht PHP Tipps 2005 3 03.03.2005 23:09
Datensatz geändern? patr1k PHP Tipps 2005 12 14.02.2005 12:46
Leeren Datensatz editierbar machen Anuschka PHP Tipps 2004-2 1 27.12.2004 13:28
Variabel in link übergeben und Datensatz löschen Datenbanken 4 17.12.2004 13:08
mehrere Benutzer arbeiten an einem Datensatz ajo_silent Datenbanken 6 20.11.2004 13:52
Datensatz abfragen und in Formularfeldern ausgeben Datenbanken 1 25.08.2004 09:24
gespeicherten Datensatz auslesen PHP Tipps 2004 1 02.06.2004 14:42

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
seitenumbruch bei ausgabe von sql, php seitenumbruch mach anzahl datensätze, sql für seitenwechsel, php mysql_fetch_array seiten wechsel, php script seitenumbruch nach einträgen, kein seitenumbruch nach datensatz, php seitenumbruch count, ich habe eine tabelle mit n einträgen und möchte auf jeder seite m davon anzeigen, nach sql_query sql werte löschen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:24 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.