Dynamische Tabelle mit PHP?

  • #1
E

Ernesto

Guest
Hallo zusammen,

Ich habe einmal hier eine Tabelle online gestellt, um die es geht. Zum einen kann nun der Inhalt sích ständig ändern, zum anderen gibt es unterschiedliche Headlines - für den Fall Ferienanlagen.

Seither mache ich tapfer eine HTML Seite für jede Ferienanlage und ändere den Inhalt ggf. händig mit viel Fleiß ab. Ich könnte mir aber vorstellen, dass die Lösung bei PHP zu finden ist. Sprich: Outfit der Tabelle einmal erstellen und die Daten dann dynamisch nachzuladen.

Was mir fehlt, wäre ein erster Anhaltspunkt nach dem ob und wie. Selfphp ist nicht gerade soooo aufschlussreich, wenn man mit der Keule vor der Tür steht.

Danke und schwitz aus Teneriffa
 
  • #2
Hi!

Hier mal ein Beispielcode, der genau das macht, was Du suchst (hoffe ich jedenfalls ;D)

Code:
                  include(pfad/zu/verbindungsdatendaten.inc); //Datei mit Benutzerkennung laden
                  $abfrage=select * from name_der_tabelle; //kann an dieser Stelle mit if o.ä. variiert werden
                  $verbindung=mysql_connect($server,$user,$passwort); // Verbindung zur Datenbank aufbauen
                  $datensaetze=mysql_db_query($datenbank, $abfrage); // Daten aus der Tabelle auslesen
                  $anzahl_saetze=mysql_num_rows($datensaetze); // Anzahl der Treffer
                  echo <table width='100%' border='0' cellpadding='0' cellspacing='0' background='bg.gif'>; //Beginn der Tabelle
               
        for ($i=0; $i<$anzahl_saetze; $i++) // ausführen, bis alle Treffer-Datensätze angezeigt wurden
                  {
                     $anzeige_sendung=trim(mysql_result($datensaetze,$i,sendung));
                     $anzeige_sender=trim(mysql_result($datensaetze,$i,sender));
                     $anzeige_senderlink=trim(mysql_result($datensaetze,$i,senderlink));
                     $anzeige_telefon=trim(mysql_result($datensaetze,$i,telefon));
                     $anzeige_showlink=trim(mysql_result($datensaetze,$i,showlink));
                     echo <tr valign='top' bgcolor='#ffffff'><td class='ergebnis'><a href='$anzeige_showlink' class='spalte' target='_blank'>$anzeige_sendung</a></td><td class='ergebnis'><a href='$anzeige_senderlink' class='spalte' target='_blank'>$anzeige_sender</a></td><td class='ergebnis'>$anzeige_telefon</td></tr>;
                  }
                  echo </table>; // Ende der Tabelle

Den Code kann man hier und da noch etwas sauberer schreiben, aber er ist ziemlich einfach.

Diese Lösung setzt natürlich eine (mysql-)Datenbank voraus. Theoretisch kannst Du auch beliebige Textdateien auslesen, wobei sich dann eine eventuelle Suche nach Daten ziemlich umständlich gestaltet.
 

Anhänge

  • Unbenannt.PNG
    Unbenannt.PNG
    1,3 MB · Aufrufe: 29
  • #3
Hi T-Low,
danke für die Mühe. Habe mir den Code natürlich gleich mal in meinen speziellen Ordner für Tipps und Tricks rund um die HP kopiert.

Habe mich ja hier schon mal geoutet, dass MySQL für mich noch ein total böhmisches Dorf ist. Entweder ich wage mich nun per learning by doing ran oder ich muss noch ein paar Wochen warten. Nach vielen Meinungen, die ich in unterschiedlichen Foren gelesen habe, soll das Data Becker Buch PHP und MySQL sehr gut sein. Das muss halt aus Deutschland erst mal kommen. Das führt hier niemand in seinem Laden nur mal so auf Verdacht.

Und mit solch einer komplexen (?) Anforderung im Forum bei Adam und Eva zu beginnen, sprengt wahrscheinlich den Rahmen.

Ein bisschen Fummeln werde ich aber mit dem Code trotzdem ;D

Danke aus Teneriffa - und bin ich wider Erwarten erfolgreich, melde ich mich sofort!
 
  • #4
Hallo,
jetzt ist es passiert! Da es darum geht an die 1000 Datensätze online zu stellen, habe ich mir MySQL doch mal näher angeschaut. So weit, so gut......... ;D !

Zwei Dinge sind mal klar:
1.) Gedanken, wie die Daten später auf der Seite dargestellt werden, mache ich mir später.
2.) Ich bin etwas versaut, weil ich seither sehr umfangreiche Datenbankanwendungen mit Access zusammengebastelt habe. Dadurch habe ich natürlich jetzt Scheuklappen auf.

Mein Plan: Ich gebe die Daten aus Access in eine *.txt Datei aus, um sie danach in MySQL einzulesen.
In Access habe ich aber die Tabellen aufgeplittet und danach miteinander verknüpft.

Mach ich das jetzt bei MySQL auch so? Und wenn ja, wie verknüpfe ich dann dort die Tabellen?
Oder lese ich die bereits verknüpften Daten komplett in eine Tabelle ein? Was natürlich den Speicherplatz erhöht! ??? Es würde gelten 3 Tabellen miteinander zu verknüpfen. Oder findet die Verknüpfung erst auf der Website statt - wahrscheinlich, oder?

Die Pflege der Daten könnte ich weiterhin über Access betreiben und sie dann regelmässig uploaden.

Ich seh grad vor lauter Bäumen kein Stück Wald. Ist an diesem Deutschen Feiertag noch jemand nüchtern online und gibt mir nen Klaps auf den Hinterkopf, bitte?!

Dank und Gruss aus Teneriffa
 
  • #5
Hi

Wie sieht denn bisher deine Datenbankstruktur in Access aus?
Prinzipiell solltest du deine Daten auf Tabellen verteilt lassen.

Um die Daten in Mysql zu kriegen installierst du am besten den ODBC Treiber von MySQL, zu finden auf deren Homepage.
Dann wählst du in Access eine Tabelle aus, klickst mit rechts drauf und dann exportieren. Bei Dateiyp ganz unten ODBC Database auswählen, dann das Register Computerdatenquelle und dort samply-Mysql auswählen.

Mysql sollte natürlich lokal installiert sein.
Dann gibst du als MySQL Host: localhost ein, database den Namen der Datenbank, musst du evtl vorher anlegen, z.B mit phpmyadmin. Dann noch user und passwort und evtl unten ein paar Optionen ankreuzen.
Schon sollten die Daten in mysql sein.
Die Tabellen werden dann bei jeder Abfrage durch Mysql Joins zusammengeführt.

Gruß, Michael
 
  • #6
Hallo Micha,
danke für die Hinweise. Die Struktur in Access besteht im Augenblick aus drei Tabellen. Bezüglich der Daten, die ich online stellen möchte.

Den ODBC Treiber habe ich downgeloadet, installiert und (nicht lokal) versucht auf MySQL zuzugreifen. Hier bekomme ich jetzt ständig die Fehlermeldung 1045 - Access denied... Using Password: YES ... oder so ähnlich. Ein manueller Zugriff mit genau diesen Angaben Host, Database, USer Password funktioniert natürlich.
Der einzige Unterschied, den ich in der Fehler Messagebox sehen konnte, dass der User in Form von USER@IPNUMMER stand.

Jetzt hatte ich erst noch gelesen, dass MySQL lokal installiert sein muss? Wieso? Kann ich den Export nicht direkt auf den Server durchführen?

Fragen über Fragen. Aber wie gesagt: Manuelles Einloggen zu MySQL ist kein Problem.

Wenn Du noch nen Tipp hast, danke. Google findet 1045 Fehler, aber alle in Verbindung mit lokal installiertem MySQL. Und das setzt ja noch mehr voraus, oder?

Gruss aus Teneriffa
 
  • #7
Hi

Auf den MySQL Server greifst du aber wahrscheinlich über ein Webinterface drauf zu, deshalb kannst du dich da auch anmelden, weil der dann lokal drauf zugreift.

Zugriff von extern verbieten aber die meisten Webspace Hoster, deswegen kannst du da von deinem Rechner auch nicht per ODBC draufzugreifen.
Deshalb installierst du MySQl bei dir lokal, exportierst die MySQL Daten dann in eine Textdatei und fügst die dann über das Webinterface (phpmyadmin) bei deinem Webspace ein.

Gruß, Michael
 
  • #8
;D ;D ;D ;D ;D
Das hört sich ja richtig gut an! Lese schon wieder den ganzen Tag in Foren und was weiss ich wo, um voran zu kommen. Danke für den Tipp.

Die Vorgehensweise ist natürlich EDV mit der Hand am Arm. (Damit meine ich natürlich nicht Dich, Michael!) Nur auf so eine Idee muss man (ich) erst kommen.

Muss jetzt aber noch ne Frage nachschiessen, leider. Und echt eine für Doofe: MySQL downloaden 12,5 MB - ok. Aber setzt die Installation nicht auch noch einen lokalen Webserver voraus?

Die Frage ist so n00b mäßig, dass es nett wäre, wenn Du sie nach eventueller Beantwortung löschen könntest  ;D ;D ;D

Saumäßig schwitz in Teneriffa, also sonnige Grüsse, Ernesto

EDIT: Also die Frage für Doofe, habe ich mir insofern selbst beantwortet, als dass ich MySQL downgeloadet und installiert habe. Es zuckt mir zwar in den Fingern, via EDIT die Frage einfach aus diesem Posting zu löschen, lasse sie aber mal selbstbewußt stehen, um eventuellen Nachkommen die Peinlichkeit der Frage zu ersparen ;D
 
  • #9
Hi

Webserver ist nicht erforderlich, aber von Vorteil wenn du zum Verwalten phpmyadmin nehmen willst.
Ansonsten schau dir mal MySQL Front an.

Gruß, Michael
 
  • #10
Danke Michael,
ich befürchte, dass auch dieses Wochenende am Schreibtisch verbracht wird. Freue mich schon die Daten dann in der richtigen Form auf die Seite(n) zu friemeln. Wäre doch gelacht......

Stockdunkel, aber sehr, sehr warm auf TF, Gruss Ernesto
 
  • #11
Hallo,
Blöderweise sind es ja immer die Fehler, die man überhaupt nicht erwartet.

1.) Datenbank online unter MySQL angelegt
2.) Daten aus Textdatei einlesen

Das einlesen der Textdatei funktioniert bis zu einem gewissen Punkt. Beginnend mit der Zeile, die mit 128 beginnt, wird für alle Einträge in der MySQL nicht die korrekt Zahl eingetragen, sondern 127.
Ich habe nicht den gerningsten Plan, woran das liegen könnte. Tabelle mehrfach gelöscht und neu erstellt. Quelldatei mehrfach neu erstellt - alles mit dem selben Effekt.

Welcher Stolperstein liegt mir da im Weg?

Danke für jeden Tipp und Gruss aus TF

EDIT: Alles ok. Habe alle Tabellen mittlerweile hochgeladen. Hätte ich mich gleich an Michaels Vorgehensweise gehalten, wäre alles schneller erledigt gewesen. Naja, wer nicht hören will.............. Übrigens: Alles mit MySQL-Front erledigt! Guter Tipp - einfach in der Handhabung
 
  • #12
Hallo zusammen,

ich suchte ein Tool, welches automatisch zwei Ordner auf verschiedenen Devices synchronisiert. So wie eine Spiegelung das tut (ist wohl wie RAID 1). Das krieg' ich mit DSynchronize auch ganz gut hin. Allerdings muss ich die Software jedesmal manuell starten. Die Optionen "Autostart" bzw. "Autostart als Dienst" bekomme ich leider nicht eingestellt. Mich interessiert in erster Linie der "Autostart akls Dienst". Wenn ich den versuche zu aktivieren, dann erscheint ein Fenster, bei dem ich einen admininstrativen User eingeben und dann den Dienst installieren und dann starten starten muss. Aber der Dienst wird nicht installiert und auch nicht gestartet.

Warscheinlich sehe ich irgendwie den Wald vor lauter Bäumen nicht. Jedenfalls krieg' ich's nicht hin.

Ich finde auch keine rechte Anleitung zu der Software.

Hat jemand eine Idee, was ich da falsch mache, oder eine Empfehlung für eine andere Software?

Danke im Voraus.

Gruß: Kay-Uwe
 
  • #14
Hallo Bytehawk,
Synctoy kommt für mich nicht in Frage.

Ich suche ein Tool, welches die Verzeichnisse überwacht und bei Änderung sofort synchronisiert. All das tut DSynchronize. Und das einzige, was mir fehlt, ist der automatische Start als Dienst. Das wird zwar in der Oberfläche angeboten, wenn ich aber versuche, das einzurichten, dann scheitere ich (wie oben beschrieben). Warscheinlich ist es nur eine Kleinigkeit und ich sehe den Wald vor lauter Bäumen nicht, aber ich komme nicht dahinter. Daher meine Frage ob jemand Erfahrungen damit hat.

Gruß: Kay-Uwe
 
  • #15
Genau das macht ja Synctoy.
Du kannst nat. auch versuchen dein Tool via Taskplaner automatisch zu starten
 
  • #16
Und ich kann SyncToy als Dienst starten? Das habe ich nämlich bei der Beschreibung auf der Computerbikd Seite nicht gesehen...
 
  • #17
Im Taskplaner...wozu als Dienst?

EDIT:
Schau dir das mal an, sollte dir helfen:
https://www.drwindows.de/windows-an...ngsprogramme-als-systemdienst-einrichten.html
 
Thema:

Dynamische Tabelle mit PHP?

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben