Delphi-PRAXiS

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 9. Aug 2005 15:28


[php] n-mal eine Tabelle erstellen bis alle datensätze da
 
Hallo,

ich hab schon im web gesucht habe aber nur schmarn gefunden den ich nicht einsetzen kann (leider). Also folgendes

ich möchte Tabellen untereinanderschreiben, dazu lade ich die Tabelle Bilder aus der Datenbank, und mach mit echo eine zeile der tabelle nun möchte ich aber das für jeden datensatz in der datenbank eine eigene tabelle darunter erstellt wird das ganze wird mit nem vertikalen strich getrennt

kann mir jemand bezüglich dieser schleife helfen? ich hab auch schon tuts gemacht jedoch bin ich leider nicht zum erfolg gekommen

ich hoffe ihr könnt mir helfen

gruß

sebby

ggfan 9. Aug 2005 16:38

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
Code:
<?php
$res = mysql_query("SELECT * FROM bilder [ORDER by irgendwas]");
while($row = mysql_fetch_array($res))
{
   echo("<table><tr>
           <td>".$row['irgendwas']."</td>
           <td>".$row['nochmalwas']."</td>
         </table></tr>");
}

?>
Die geschweiften Klammern braucht man eigentlich nicht, aber ich mach sie der Übersicht halber immer dazu.

Newbie44 10. Aug 2005 10:38

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
ok noch ne frage ich hab einen downloadzähler für die bilder geschrieben, dieser zählt jedoch in einer andren tabelle wie oft die datei runtergeladen wurde. wäre es denn möglich diesen auch einfach mit reinzufügen? oder würde das überhaupt nicht gehen?

mir langt ein einfaches ja oder nein

danke

Matze 10. Aug 2005 11:06

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
ja, es würde natürlich auch gehen.

Newbie44 10. Aug 2005 11:09

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
thx at all, die probleme sind nun gelöst. manchmal findet man für so kleine probleme keine gute lösung obwohl es so einfach ist :wall:

Newbie44 10. Aug 2005 12:06

grrr dummer fehler
 
Gut das funktioniert ja soweit aber da is ein fehler drinnen den ich absolut nicht finden kann, er soll in zeile 15 sein, das is hier die letze Zeilte

echo( "<tr>
<td>".$row['Bild']."</td>
<td>".$row['Beschreibung']."</td>
</tr>"
"<tr>
<td><hr></td>
<td><hr></td>
</tr>");

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /home/www/web44/html/data1.php on line 15

woran kann das liegen?

ich suche schon ewig den fehler jedoch find ich ihn einfach nicht

alcaeus 10. Aug 2005 12:09

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
Da sind zwei strings geteilt:
Code:
...</tr>"
"<tr>...
Punkt dazwischen rein oder die " rauswerfen.

Greetz
alcaeus

Newbie44 10. Aug 2005 12:11

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
danke aber das er sich wegen so einen kleinen fehler gleich so aufregt und noch nicht mal genau sagt was es denn genau ist.

danke das wars

gruß

sebby

Newbie44 14. Aug 2005 10:34

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
ok es hakt trotzdem nochmal, also gut das anzeigen eines datensatze klappt schon recht gut, jedoch dann den nächsten anzuzeigen macht probleme, vorallem wenn man über den letzten hinaus geht.

kann mir nicht jemand mal ein beispiel schreiben oder anhand eines beispiels zeigen wie das funktionieren soll?

das wäre großartig, danke

sebby

S2B 14. Aug 2005 10:40

Re: [php] n-mal eine Tabelle erstellen bis alle datensätze d
 
Vielleicht wäre es besser, wenn du etwas von deinem Code zeigen würdest. Sonst muss man sich extra hinsetzen und den Code, den du sowieso schon hast, neu schreiben. :wink:

btw. steht ein allgemeines Beispiel doch schon oben, oder?

Edit: Das war Nr. 1000. :firejump:

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 13:42 Uhr.

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