Forenindex » Programmierung/Entwicklung » PHP und MySQL » pagebar (Blättern mit Mysql und PHP)

pagebar (Blättern mit Mysql und PHP)

pat87
Beiträge gesamt: 581

30. Jun 2004, 18:59
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
hallo zusammen,

wie kann ich bei php, das mit einer mysql-datenbank verbunen ist einstellen, dass eine pagebar entsteht und dass eine bestimmte anzahl einträge der mysql-datenbank pro seite angezeigt werden...

von dem design her stelle ich mir das so vor:

[1] [2] [3] >>

und dass dann die seite, die angewählt ist, fett erscheint. ausserdem sollten nur die spitzen klammern angezeigt werden, wenn es eine seite davor bzw. dahinter gibt.

ich hoffe, dass ihr mir fleissig zurückschreibt und warte auf eure antwoten...

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/

pagebar (Blättern mit Mysql und PHP)

oesi50
  
Beiträge gesamt: 2315

30. Jun 2004, 20:22
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
hi Pat,

dafür kannst Du LIMIT verwenden

"SELECT ..... LIMIT $i,$j"

$i: Start beginnt bei 0
$j: Anzahl


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

pagebar (Blättern mit Mysql und PHP)

pat87
Beiträge gesamt: 581

30. Jun 2004, 21:59
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
und wie kann ich es einstellen, dass da automatisch variabeln verwendet werden (für max. und total) und dass dann die zahlen sich auch automatisch anpassen?

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/

pagebar (Blättern mit Mysql und PHP)

oesi50
  
Beiträge gesamt: 2315

30. Jun 2004, 23:02
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
Du zählst erst mal die Ergebnisse mit COUNT. Dann dividierst Du die gefundenen Zahl durch die gewünschte Seitengröße. Damit ist die Anzahl der Markierungen gefunden.

Beispiel:

Seitengröße(Limit): 10
Gefundene: Zeilen 25

25 / 10 = 2 Rest 5

=> [1] [2] [3]


Links:
[1] start=0
[2] start=10
[3] start=20

limit=10


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

pagebar (Blättern mit Mysql und PHP)

pat87
Beiträge gesamt: 581

1. Jul 2004, 18:01
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
wie geht das mit dem count?

und wie funktioniert es, dass wenn ein neuer eintrag dazu kommt, dass dann automatisch wenn es nötig ist, eine neue zahl z.b. [4] entsteht?

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/

pagebar (Blättern mit Mysql und PHP)

oesi50
  
Beiträge gesamt: 2315

1. Jul 2004, 21:59
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
> wie geht das mit dem count?

SELECT COUNT(*) WHERE $deine_bedingungen LIMIT $start,$anzahl

> und wie funktioniert es, dass wenn ein neuer eintrag dazu kommt, dass
> dann automatisch wenn es nötig ist, eine neue zahl z.b. [4] entsteht?

Das ergibt sich aus der Berechnung

Bsp.:
25/10 = 2 rest 5 => 1 2 3 (ist ein Rest da, dann noch eins)
30/10 = 3 rest 0 => 1 2 3 (kein Rest)
31/10 = 3 rest 1 => 1 2 3 4


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

pagebar (Blättern mit Mysql und PHP)

pat87
Beiträge gesamt: 581

2. Jul 2004, 18:27
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
aber wie kann ich es mit der rechnung anstellen, dass es automatisch mehr oder weniger zahlen gibt?

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/

pagebar (Blättern mit Mysql und PHP)

oesi50
  
Beiträge gesamt: 2315

2. Jul 2004, 20:03
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
z.B. so:
da kannst Du Dir sogar die Division Sparen.

for($i = 0; $i < $max; $i+=10){
print "[$i] ";
}


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

pagebar (Blättern mit Mysql und PHP)

pat87
Beiträge gesamt: 581

3. Jul 2004, 15:20
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
sind das geschützte variabeln oder muss ich die zuerst definieren?

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/

pagebar (Blättern mit Mysql und PHP)

oesi50
  
Beiträge gesamt: 2315

3. Jul 2004, 15:35
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
Du musst das natürlich alles selbst programmieren.

1. Abfrage (count) mit deinen Kriterien
-> daraus ergibt sich die Gesamtzahl $max
2. Abfrage mit den selben Kriterien wie oben mit Limit Start, Anzahl
-> Anzeigen
3. Erzeugen der 'weiter' Links mit einer Schleife
-> Anzeigen

Bei meinem obigen Beispiel ist der Startwert für die Links jeweils schon in $i.

In den Links müssen auch noch sämtliche Parameter für deine Suchkriterien enthalten sein. Schau Dir mal den HTML-Quelltext von google an, da ist es sehr schön zu sehen.


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

(Dieser Beitrag wurde von oesi50 am 3. Jul 2004, 15:46 geändert)

pagebar (Blättern mit Mysql und PHP)

Miro Dietiker
Beiträge gesamt: 699

4. Jul 2004, 01:58
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
Heyoo oesi!

Wusste garnicht, dass Google opensource ist! Wo krieg ich den
Quellcode von Google denn her? =)

Oder war da etwa der ausgegebene HTML-Quelltext gemeint?
Wär' echt schade ;-)

GrEeZ: Miro Dietiker

pagebar (Blättern mit Mysql und PHP)

pat87
Beiträge gesamt: 581

6. Jul 2004, 22:17
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
kann ich so nicht die gesammte anzahl aller einträge erfassen und sie anzeigen?

$number = count ($nr = $row["nr"]);
$numbers = $number;
echo $numbers;

was ist falsch? er zeigt mir überall '1' an...

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/

(Dieser Beitrag wurde von pat87 am 6. Jul 2004, 22:17 geändert)

pagebar (Blättern mit Mysql und PHP)

oesi50
  
Beiträge gesamt: 2315

6. Jul 2004, 22:29
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
Wir kennen Deine Datenbank nicht. Wir kennen Deine Scripte nicht. Die prinzipelle Lösung habe ich schon mehrfach gepostet. Möglicherweise kann Dir auf diese Art hier keiner helfen.

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

pagebar (Blättern mit Mysql und PHP)

pat87
Beiträge gesamt: 581

7. Jul 2004, 13:01
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
ok. aber wie kann ich die totale anzahl aller einträge in der datenbank feststellen?

ich habe das so versucht:


$query = "SELECT * FROM `guestbook` WHERE 1 ORDER BY nr DESC";
$result = mysql_query($query) or die("anfrage fehlgeschlagen: " . mysql_error());
while($row = mysql_fetch_array($result))
{
$number = count ($row = $row["row"]);
echo $number;
}
mysql_close($db);

wobei die zeile mit allen winträgen 'row' heisst...

nützt das mehr?

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/

pagebar (Blättern mit Mysql und PHP)

oesi50
  
Beiträge gesamt: 2315

7. Jul 2004, 13:46
Bewertung:

gelesen: 6255

Beitrag als Lesezeichen
$query = "SELECT COUNT(*) FROM guestbook";
$result = mysql_query($query) or die("anfrage fehlgeschlagen: " . mysql_error());
$row = mysql_fetch_array($result);
echo $row[0];

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

PS.:
Wie oft soll ich noch hinschreiben, dass man dazu COUNT(*) verwendet?

pagebar (Blättern mit Mysql und PHP)

pat87
Beiträge gesamt: 581

7. Jul 2004, 20:43
Bewertung:

gelesen: 1692

Beitrag als Lesezeichen
das geht jetzt. aber jetzt versuche ich es mit der for-schleife zu verbinden, aber das geht nicht:

<?
include ("connect.php");

$query2 = "SELECT COUNT(*) FROM guestbook";
$result2 = mysql_query($query2) or die("anfrage fehlgeschlagen: " . mysql_error());
$nr2 = mysql_fetch_array($result2);
echo 'totale anzahl eintr&auml;ge: ';
// echo $nr2[0];
$max = $nr2;

for($i = 0; $i < $max; $i+=2){
print "[$i] ";
}

mysql_close($db);
?>

denn er zeigt mir eine riesen anzahl von zahlen an (http://www.pat87.ch/...hp?select=guestbook)

an was liegt dies?

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/

(Dieser Beitrag wurde von pat87 am 7. Jul 2004, 20:44 geändert)

pagebar (Blättern mit Mysql und PHP)

oesi50
  
Beiträge gesamt: 2315

7. Jul 2004, 20:50
Bewertung:

gelesen: 1692

Beitrag als Lesezeichen
$max = $nr2[0];

for($i = 0; $i < $max; $i+=10){
print "[$i] ";
}

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

pagebar (Blättern mit Mysql und PHP)

pat87
Beiträge gesamt: 581

7. Jul 2004, 20:58
Bewertung:

gelesen: 1692

Beitrag als Lesezeichen
jetzt sollte aber als erste zahl nicht null, sondern 1 stehen und als zweite z.b. 2, als dritte 3, usw.

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/

pagebar (Blättern mit Mysql und PHP)

oesi50
  
Beiträge gesamt: 2315

7. Jul 2004, 21:19
Bewertung:

gelesen: 1692

Beitrag als Lesezeichen
Lies jetzt noch mal den Beitrag mit der Division durch.


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

pagebar (Blättern mit Mysql und PHP)

pat87
Beiträge gesamt: 581

7. Jul 2004, 21:22
Bewertung:

gelesen: 1692

Beitrag als Lesezeichen
da werd ich nicht schlau, da du etwas später geschrieben hast, dass das mit der division wegfällt...

ausserdem würde sich dieses beispiel ja nicht automatissch audaten, wenn ein neuer beitrag verfasst wird...

mfg p@
---
mailto:admin@pat87.ch
http://www.pat87.ch/

pagebar (Blättern mit Mysql und PHP)

oesi50
  
Beiträge gesamt: 2315

7. Jul 2004, 21:43
Bewertung:

gelesen: 1691

Beitrag als Lesezeichen
for($i = 0; $i < $max; $i+=10){
$j = $i /10;
print "[$j] ";
}

ab jetzt bitte mal selber nachdenken.

Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

pagebar (Blättern mit Mysql und PHP)

Kusi
Beiträge gesamt: 1398

7. Jul 2004, 22:13
Bewertung:

gelesen: 1691

Beitrag als Lesezeichen
@oesi
Also deine unendliche Geduld..... wie soll pat selber nachdenken, wenn du Sokrates zitierst ;o)

Wie wärs mit meinem Zitat
Manchmal denk ich, manchmal bin Ich!

Neben bei, ich hab schon unheimlich viel von dir gelernt! Vielen Dank!


Gruss
Kusi

http://www.k-k.ch

pagebar (Blättern mit Mysql und PHP)

oesi50
  
Beiträge gesamt: 2315

7. Jul 2004, 22:23
Bewertung:

gelesen: 1691

Beitrag als Lesezeichen
@kusi

Danke für die Blumen.


Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)

Erst wenn ich weiß, daß ich nichts weiß, weiß ich was ich weiß.