Datenbankabfrage, Schleife, Darstellung überlagert 
Autor: Andreas M.Kurz zum Wissenstatus von mir: Ich bin seit langen Jahren aktiv in der Webseiten-Programmierung und beherrsche somit HTML, CSS, PHP und Mysql. Die Nutzen von Programmen zur Erstellung von Webseiten ist mir allerdings neu, insbesondere von X5. Aber ich soll nun die Datenanbindung einer X5-Webseite basteln.
Ich versuche aus einer Datenbank eine Liste von Katalogartikel auszulesen und mittels Website X5 (Prof. 17) in einer Schleife darzustellen.
Ich habe dazu
- die Datenbank in den Einstellungen eingetragen
- auf der Seite "vor dem HTML-Tag" die Datenbank initialisiert
- auf der Seite, wo der Katalog dargestellt werden soll, habe ich dann "HTML-Code" eingebaut: Die Abfrage der Datenbank mittels PHP und Beginn der Schleife ( for($x=$start;$x<$ende;$x++){ )
- dann den darzustellenden Block, der die einzelnen Inhalte eines Datensatzes darstellt
- und schließlich wieder ein "HTML-Code" eingebaut, der nichts weiter als die schließende Klammer der for-Schleife enthält.
Das Ganze funktioniert auch prima, wenn ich mir den Quelltext anschaue. Allerdings wird nur ein Block im Browser angezeigt. Es sieht so aus, als wenn alle Datensätze einfach übereinander aufgebaut werden.
Das Ganze kann nun aus meiner Sicht zwei Ursachen haben und hier brauche ich Eure Hilfe:
1. Ich habe den Block für die HTML-Codes einfach eingefügt. Wenn ich im Quelltext schaue, hat der ein paar DIVs vorher und nachher. Nach der oben beschriebenen geöffneten For-Schleife kommen erstmal zwei "</DIV>" (wohl von dem Block, in dem der HTML-Code steht).
Wie kann ich dem Block sagen, dass er jegliche Formatierungen weg läßt?
2. Den Inhaltsblock hat mein Bekannter gemacht (der kann besser layouten wie ich). Er hat diesen zunächst, da ohne Datenbankabfrage und zur besseren Veranschaulichung, in X5 mehrfach kopiert. Wenn ich die mir die ID- und Class-Tags anschaue, sind sie alle unterschiedlich, in jedem Block, obwohl die eigentlich gleich aufgebaut sind (ja, ich weiß, so arbeiten solche Programme wie X5).
Nach meiner Programmierung gibt es nun aber 10 Mal einen identischen Block, also auch zB 10 Mal die gleich ID (was ja nicht W3-konform ist).
Ich könnte mir also auch vorstellen, dass dass es an den gleichen ID-Bezeichnungen liegen könnte (und, dass diese dann absolute Positionierungen haben).
Lange Rede, kurzer Sinn: Wie baue ich einen solchen Block in einer Schleife korrekt ein? Ich habe leider kein HowTo, Tutorial oder was hier im Forum zu gefunden.
Hi Andreas.
Unfortunately, I cannot see any licence linked to your current profile.
Perhaps your current copy of the software is linked to a different email here on helpcenter? If so, please let me know here
Additionally, the Staff cannot provide support for third party code since compatibility cannot be guaranteed, and for this reason, I would like to suggest you either contact a professional for this, or eventually wait for other users to stop by and help you out with this
Let me know
Thank you
Stefano
GOOGLE TRANSLATE ---
Hallo Andreas.
Leider kann ich keine Lizenz sehen, die mit Ihrem aktuellen Profil verknüpft ist.
Möglicherweise ist Ihre aktuelle Kopie der Software hier bei helpcenter mit einer anderen E-Mail verknüpft? Wenn ja, lass es mich hier wissen
Darüber hinaus kann der Stab keinen Support für Code von Drittanbietern bereitstellen, da die Kompatibilität nicht garantiert werden kann. Aus diesem Grund möchte ich Ihnen vorschlagen, entweder einen Fachmann zu kontaktieren oder eventuell darauf zu warten, dass andere Benutzer vorbeikommen und Ihnen dabei helfen
Gib mir Bescheid
Vielen Dank
Stefano
Autor
Hallo Stefano,
hier die Frage nochmal mit dem Account, dem die Lizenz gehört: https://helpcenter.websitex5.com/pt/post/204015
Zu den anderen Punkten:
- es geht nicht um Code von Drittanbietern. Den Code habe ich selbst erstellt. Ist ja auch nicht viel: Datenbank-Abfrage, Beginn einer Schleife, dann der Inhaltsblock, dann Ende der Schleife.
- ich BIN der Fachmann (php/Mysql/HTML), ich kenne mich nur nicht mit X5 aus und daher frage ich hier. Ich will ja auch keine Schritt-für-Schritt-Anleitung. Ein Hinweis auf ein Tutorial, Beispiel oder HowTo würde mir ja schon sehr weiterhelfen.
Ich habe oben ja die Problematik erklärt. Ich habe die Schleife, die aber wohl durch X5 innerhalb von mehreren DIV-Blöcken steckt (vor und nach dem mehrfach darzustellendem Block).
Die angehängte Grafik zeigt den Aufbau: "1" ist die Datenbank-Abfrage mit Beginn der For-Schleife und "2" Das Ende der Schleife (lediglich schließende Klammer). Die Blöcke dazwischen werden mehrfach aufgerufen. Sie werden auch mehrfach dargestellt, aber man sieht im Browser den Block nur einmal (nur im Quelltext sieht man ihn mehrfach).
Die möglichen Gründe habe ich oben beschrieben. Ich weiß in X5 nur nicht, wie ich das abstellen kann. Daher ja auch die Frage nach einem Beispiel.
Wenn du auf den Seiten oder in den HTML-Objekten PHP Code verwendest, musst du in den Seiteneigenschaften auch auf PHP umstellen.
Allerdings weis ich nicht was du mit den Daten der Datenbank genau machen willst oder anzeigen lässt. Dazu kenne ich mich nicht mit PHP oder mysql Code aus. Jedenfalls kann ich mit Sicherheit sagen, dass es zu deinem Thema kein Tutorial finden wirst.
Hi Andreas.
Unfortunately, since the matter is still about custom code, the Staff simply is unable to provide support for it.
This includes digging into the way code is generated inside the software and how it is presented technically speaking.
In order to get this issue sorted out, I'm afraid you will have to either examine the code that is being generated by the software directly at Step 5 at export time, or rely on other users to help you out
In any case, I will leave the topic open so that other users might eventually stop by and lend a hand about this
Thank you for your understanding
Stefano
GOOGLE TRANSLATE ---
Hallo Andreas.
Da es sich bei der Angelegenheit immer noch um benutzerdefinierten Code handelt, kann der Staff dies leider nicht unterstützen.
Dies beinhaltet das Eingraben in die Art und Weise, wie Code innerhalb der Software generiert wird und wie er technisch dargestellt wird.
Damit dieses Problem behoben werden kann, müssen Sie entweder den von der Software generierten Code zum Zeitpunkt des Exports direkt in Schritt 5 prüfen oder sich von anderen Benutzern abheben
In jedem Fall lasse ich das Thema offen, so dass andere Benutzer eventuell vorbeischauen und eine Hand zu diesem Thema beitragen können
Danke für Ihr Verständnis
Stefano