Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [php] n-mal eine Tabelle erstellen bis alle datensätze da (https://www.delphipraxis.net/51273-%5Bphp%5D-n-mal-eine-tabelle-erstellen-bis-alle-datensaetze-da.html)

Newbie44 14. Aug 2005 10:48

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
entweder du willst helfen oder nicht. die beispiele oben sind nicht gut genug und viel zu umständlich. ich frag mal in einem php forum direkt nach die zeigen wenigstens beispiele auf.

S2B 14. Aug 2005 10:53

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
Ich finde, dass das Beispiel von ggfan absolut ausreichend ist. Du musst ja nur in der while-Schleife den html-Code ausgeben lassen, der pro Eintrag ausgegeben werden soll und dort die entsprechenden $row-Werte eintrage.

Wenn du trotzdem nicht weiterkommst, dann kannst du ja einfach hier den Teil deines Quellcodes rein posten, bei dem du Probleme hast. :wink:

alcaeus 14. Aug 2005 11:22

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
Moin Newbie,

Zitat:

Zitat von Newbie44
jedoch dann den nächsten anzuzeigen macht probleme, vorallem wenn man über den letzten hinaus geht.

aus der Hilfe zu mysql_fetch_array:
Zitat:

Returns an array that corresponds to the fetched row, or FALSE if there are no more rows.
Folglich wird $row FALSE sein, sobald keine weitere Zeile in der Ergebnismenge uebrig ist. Die while-Schleife aus ggfan's Beispiel funktioniert sogar bei mir als DBAL-verwoehntem PHP-Programmierer :zwinker:

Zitat:

Zitat von Newbie44
entweder du willst helfen oder nicht. die beispiele oben sind nicht gut genug und viel zu umständlich.

Wie gesagt, das Beispiel funktioniert, und Simon (sowie ich jetzt) versuchen dir zu helfen, allerdings sind manchmal auch Rueckfragen noetig. Zeig doch einfach mal den Teil vom Code, in dem du das Query ausfuehrst sowie die anschliessende Ausgabe-Schleife. Dann wird es auch leichter, das Problem zu lokalisieren, zumal du ja nicht gesagt hast, was das genaue Problem ist.

Greetz
alcaeus

Delphi-Freak 14. Aug 2005 12:07

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
Hi!

Ich versuche mal, das Script etwas zu beschreiben, so kompliziert ist das meines Erachtens ja nicht...

Code:
<?php

//Zuerst einmal die Daten in der Datenbank-Tabell selektieren
$res = mysql_query("SELECT * FROM bilder");

//Dann eine Zeile und verarbeiten - wenn es keine Zeile mehr gibt, dann ist ($row = mysql_fetch_array($res)) false, dadurch wird die while-Schleife dann abgebrochen
while($row = mysql_fetch_array($res))
{
   //die Zeile ausgeben
   echo("<tr>");
   echo("<td>".$row['Bild']."</td>");
   echo("<td>".$row['Beschreibung']."</td>");
   echo("</tr>");
   //einen Trennstrich ausgeben
   echo("<tr>");
   //colspan="2" statt 2 Zellen, damit der Strich in der Mitte nicht geteilt ist, sondern durchgehend ist
   echo("<td colspan="2"><hr></td>");
   echo("</tr>");
}

?>
Ich hoffe, diese Beschreibung ist etwas hilfreich, sonst bitte melden...


LG, ich

Newbie44 14. Aug 2005 12:36

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
Liste der Anhänge anzeigen (Anzahl: 1)
ok es handelt sich hier wie ich sehe um ein großes missverständis, daran bin ich schuld, sorry.

also der sinn ist so.

das aktuelle bild wird angezeigt, aber nur eines aus 1 spalte einer datenbank z. B. ID 1. dann gibt es unten 2 buttons links steht "zurück" rechts steht "vor". im bild seht ihr das ganze noch mal

nun möchte ich wenn man den button vor drückt das die informationen der nächsten spalte also z. B. WHERE ID 2 eingetragen wird.

ich hab mal einen Seitenzähler gesehen sowas in der art jedoch ohne nummern unten

Code:
if(!isset($_REQUEST['AktuelleSeite']))
{
   $AktuelleSeite=0;
}
else
{
   $AktuelleSeite=$_REQUEST['AktuelleSeite'];
}
if($Anzahl>$ErgebnisseProSeite)
{
   $Seiten=intval($Anzahl/$ErgebnisseProSeite);
   if($Anzahl%$ErgebnisseProSeite)
   {
      $Seiten++;
   }
   echo"Seite ";   
}
for($i=1; $i<=$Seiten; $i++)
{
   echo"<a href=\"Guestbook.php?AktuelleSeite=",
      ($i-1)*$ErgebnisseProSeite,
      "\">$i</a>";
}
jedoch bin ich zu blöd das umzuschreiben.

ich hoffe ihr versteht mich jetzt, sorry für diese ganzen missverständnisse, das was Delphi-Freak vorgeschlagen hat is überhaupt kein problem für mich

gruß

sebby

S2B 14. Aug 2005 12:57

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
Wenn ich das richtig sehe, geht es bei dir doch um gar keinen Seitenzähler, oder?

Ich würde die Sache so angehen:
  • Du nimmst eine $_GET-Variable, die die Nummer des entsprechenden Bilds, das angezeigt werden soll enthält:
    Code:
    $bild_id = (isset($_GET['id'])) ? $_GET['id'] : 0;
  • Danach setzt du $bild_id entsprechend ins SQL-Query ein:
    Code:
    $sql = "SELECT * from Bilder WHERE bild_id = $bild_id";
    $result = mysql_query($sql);
  • Dann gibst du das aktuelle Bild aus:
    Code:
    $row = mysql_fetch_assoc($result);
    echo 'deine Ausgabe';
  • Mit der ID des aktuellen Eintrags hast du auch die ID des vorigen und des nächsten Eintrages:
    Code:
    $letzte_id = $bild_id - 1;
    $naechste_id = $bild_id + 1;
  • Unter deine Ausgabe gibst du jetzt 2 Links aus, die auf das vorherige und das nächste Bild verlinken:
    Code:
    // vorheriges Bild:
    echo '[url="bilder.php?id=' . $vorherige_id . '"]vorheriges Bild[/url]';

    // nächstes Bild:
    echo '[url="bilder.php?id=' . $naechste_id . '"]nächstes Bild[/url]';

Wenn du so vorgehst, müsste es eigentlich gehen.

Newbie44 14. Aug 2005 12:59

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
Super genau das hab ich gemeint. ich muss wirklich an meinem ausdruck arbeiten sonst gibt es immmer mehr missverständnisse, danke

Delphi-Freak 14. Aug 2005 15:49

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
Hi!

2 Dinge noch:

1) Ich würde abfragen, ob die vorige bzw. nächste ID auch existiert, man soll ja am Anfang/Ende anstehen;
dazu also:
Code:
<?php

//...

// vorheriges Bild:
if(mysql_num_rows(mysql_query("SELECT * FROM Bilder WHERE id = $letzte_id"))) echo '[url="bilder.php?id=' . $vorherige_id . '"]vorheriges Bild[/url]';


// nächstes Bild:
if(mysql_num_rows(mysql_query("SELECT * FROM Bilder WHERE id = $naechste_id"))) echo '[url="bilder.php?id=' . $naechste_id . '"]nächstes Bild[/url]';

//...

?>
2) Vielleicht sollte man noch die Abfrage einbauen, ob die ID auch existiert; momentan wird davon ausgegangen, was dann zu Errors führen könnte:
Code:
<?php

//...

$sql = "SELECT * from Bilder WHERE bild_id = $bild_id";
$result = mysql_query($sql);

if(!mysql_num_rows($result)) die("Ung&uuml;ltige ID!

<a href=\"?bild_id=0\">Weiter</a>");

//...

?>
@S2B: Nimms nicht persönlich, ich bin nur gewissermaßen Perfektionist :zwinker:


LG, Delphi-Freak

Newbie44 14. Aug 2005 15:57

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
super du nimmst mir die worte aus dem mund genau das hat noch funktioniert.

vielen danke für eure hilfe

gruß

sebby

S2B 14. Aug 2005 16:16

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
Zitat:

Zitat von Delphi-Freak
@S2B: Nimms nicht persönlich, ich bin nur gewissermaßen Perfektionist :zwinker:

Ich nehm's nicht persönlich, keine Angst. :zwinker: In meinen Scripts achte ich auch auf so etwas, nur hier wollte ich es nicht unnötig kompliziert machen. :wink: Außerdem kann Newbie44 das ja zur Not auch alleine machen, oder?


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz