Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 5%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 392 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

author.psi

Haudegen

Dabei seit: 29.11.2004

Beiträge: 699

 

1 Zum Seitenanfang

Montag, 20. Februar 2006, 18:35

Seitenumbruch und Neuste Beiträge zu erst

Moin,

Hier erst einmal das komplette "Script":

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
$db=mysql_connect(" "," "," ");
mysql_select_db(" ");

$page=$_GET['page'];

$ende=$page*2;
$anfang=$ende-2;

$anfrage="SELECT * FROM news LIMIT ";
$anfrage.=$start;
$anfrage.=",";
$anfrage.=$ende;
$ergebnis=mysql_query($anfrage);

$spaltenzahl=mysql_num_fields($ergebnis);

while($zeile=mysql_fetch_row($ergebnis)) {
print("<br></br>");
print($zeile[0]);
print("</br>");
print($zeile[1]);
print("<hr>");
}

mysql_close($db);

?>


1. Frage

Was habe ich Falsch gemacht?

Das soll (in diesem Fall) immer nur 2 Beiträge meines News/Gästebuch (denkt euch was auch immer aus) ausgeben.

Das ganze wird dann über z.B. news?page=2 (soll dann unter Limit 2-4 ausgeben) gesteuert.

Nur klappt das irgendwie noch nicht ganz, den Fehler konnte ich aber noch nicht finden.

"Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in index.php on line 16. "

2. Frage

Wie kann ich die komplette Datenbank umdrehen, oder einstellen, das die neusten Beiträge ganz oben landen? (Rückwärz auslesen oder sowas von mir aus auch).

MfG Author
 

jperl

Super Moderator

Dabei seit: 09.04.2003

Beiträge: 3 453

 

2 Zum Seitenanfang

Montag, 20. Februar 2006, 19:01

also meiner meinung nach funktioniert das limit statement bei mysql so:

limit 2,2

liefert die datensätze 3 und 4

also SELECT * FROM tabelle LIMIT anfang, anzahl
weiters kannst du mit echo mysql_error(); den genauen fehler ausgeben.

ich denke auch mal, dass du deine tabelle hoffentlich mit einem id feld versehen hast.
dann kannst du einfach noch "ORDER BY id DESC" in dein mysql statement einfügen.

jperl
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
 

author.psi

Haudegen

Dabei seit: 29.11.2004

Beiträge: 699

 

3 Zum Seitenanfang

Montag, 20. Februar 2006, 19:48

Vielen Dank, ich bin jetzt einen großen Schritt weiter. *bedank*

Hier aber mein Verblüffendes Ergebniss (Seitenumbruch):

Ohne Angaben:

(Insgesammt 6 News)

Ausgabe:

News 4
News 6

Mit News/index.php?page=1

Ausgabe:

News 5
News 3

Mit "News/index.php?page=2"

News 1
News 2


An der DB habe ich noch nichts verändert, das wollte ich dann als nächsten Schritt machen. Hier das, was ich verändert habe:

PHP-Quelltext

1
2
3
4
5
6
7
8
$page=$_GET['page'];

$start=$page*2;

$anfrage="SELECT * FROM news LIMIT 
$anfrage.=$start;
$anfrage.=",2";
$ergebnis=mysql_query($anfrage);


Ist mir da ein Rechenfehler unterlaufen?
 

jperl

Super Moderator

Dabei seit: 09.04.2003

Beiträge: 3 453

 

4 Zum Seitenanfang

Montag, 20. Februar 2006, 20:33

naja die frage ist wie deine datenbank struktur ausschaut. wenn du kein id feld hast musst du zuerst die anzahl aller datensätze rausfinden und dann das limit anpassen.

wenn du hingegen eine id spalte hast geht es um einiges einfacher.

zu deinem fehler:
klar stimmt dein statement noch überhaupt nicht.
mal angenommen seite 1:
dann ist $start = 2;
-> SELECT * FROM news LIMIT 2,2
und dann nimmt er den 3. und den 4. datensatz.
wundert mich etwas wie die datensätze ausgegeben werden. sollte aber an der datenbank liegen.

weiters solltest später noch abfragen ob eine seite mit der url übergeben wurde, bzw ob die seite zulässig ist.

jperl
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
 

author.psi

Haudegen

Dabei seit: 29.11.2004

Beiträge: 699

 

5 Zum Seitenanfang

Dienstag, 21. Februar 2006, 21:25

Mhmm.. Ich verstehe leider nicht genau was du mir sagen willst, also hier mal die Tabelle (news) die ich jetzt benutze:

titel | inhalt
varchar(20) | text

Welche Optionen muss ich bei phpMyAdmin benutzen, um eine "ID" Spalte zu erstellen? Ich kann die ganze Tabelle löschen, das währe nicht das Problem. Das ich "auto_increment" benutzen muss, weiß ich bereits. Nur halt die genauen Informationen dazu nicht.

Und wie schaffe ich es jetzt diese Einträge nach der Reihe (und vor allem in Form von Seiten) auszugeben?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »author.psi« (21. Februar 2006, 21:27)

 

Jegres

Haudegen

Dabei seit: 11.02.2003

Beiträge: 546

 

6 Zum Seitenanfang

Dienstag, 21. Februar 2006, 23:23

ähm ... kein bock dir zu erklären wo du in phpMyAdmin klicken musst um die tabelle zu erstellen, hier hast mal den mysql-code dafür um die tabelle zu erstellen.

Quellcode

1
2
3
4
5
6
CREATE TABLE`news` (
`id` int unsigned auto_increment ,
`titel` varchar( 20 ) ,
`inhalt` text,
PRIMARY KEY (`id`)
);


joa und beim script machst dann halt sowas hier:

Quellcode

1
SELECT `titel`, `inhalt` FROM `news` ORDER BY `id` DESC LIMIT $start, $anzahl
 

agroman

Eroberer

Dabei seit: 12.06.2004

Beiträge: 73

 

7 Zum Seitenanfang

Mittwoch, 30. Mai 2007, 01:17

RE: Seitenumbruch und Neuste Beiträge zu erst

hi,

glaube du suchst sowas in der art`?

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
class QueryLimit
 {
 
     var $page;
    var $limit 5;
    var $pagecount;
    var $begin 1;
    
    // Mathe für die dies können....
     function queryLimit($lines$limit)
      {
         $this->pagecount=ceil($lines/$this->limit);
        if(!isset($_REQUEST['page'])) {
            $this->page 1;
        } else {
            $this->page $_REQUEST['page'];
        }
        if ($this->page<1) {
            $this->page=1;
        }
        if ($this->page>$this->pagecount) {
            $this->page=$this->pagecount;
        }
    
        $this->begin=($this->page-1)*$this->limit;
     }
    
    // links um Seiten durchzublättern?
    function display_links()
     {
         for ($i=1$i<=$this->pagecount$i++)
         {
            if ($i==$this->page) {
                  echo "<b>" $i "</b> ";
               } else {
                 echo "<a href=\"" getenv("SCRIPT_NAME") . "?site=news&page=".$i."\" alt=\"\">" $i "</a> ";
            }
         }     
     }
     
    // array mit Limit Werten für SQL Query zurückgeben  
    function get_limit()
     {
         $val = array('start' => $this->begin,'end' => $this->limit);
        return $val;
     } 
 }



war ursprünglich keine Klasse aber dachte mir das es so einfach einzusetzen ist. Leider steckt noch ne make drin. weiß nur nicht wo. aber funktionieren tuts...