Deutschsprachiges NOF - Forum

Support und Tutorials rund um das Thema NetObjects Fusion

collapse

* Alles hat ein Ende...

Eine Weisheit der Dakota-Indianer sagt:
"Wenn Du entdeckst, dass Du ein totes Pferd reitest, steig ab!"

Vor fast fünf Jahren habe ich die NOF-Community gegründet und nachdem just zu diesem Zeitpunkt das „alte NOF-Forum“ quasi über Nacht vom Betreiber geschlossen wurde, war mein Forum für viele Nutzer von NetObjects Fusion eine willkommene Alternative.

Inzwischen sind weit über 5000 NetObjects-Nutzer in der NOF-Community registriert und täglich kommen weitere hinzu. An interessierten Mitgliedern fehlt es also nicht. Was aber fehlt, sind Mitglieder, die Lust haben, anderen Nutzern bei der Lösung ihrer vielfältigen Probleme in der Anwendung von NetObjects Fusion zu helfen. Vielleicht, weil viele von ihnen - ebenso wie ich - das Interesse an NOF verloren haben und zwischenzeitlich mit anderen Programmen arbeiten.

Aktuell ist es so, dass der Support wie die Kosten für den Betrieb der NOF-Community fast ausschließlich von mir übernommen werden. Dies, und die Tatsache, dass ich die Arbeit mit NetObjects Fusion nicht mehr für zeitgemäß halte, veranlasst mich, den aktiven Forenbetrieb zu beenden. Die Beiträge, Tipps und Anleitungen aus den letzten Jahren stehen ab heute nur noch als Nachschlagewerk zur Verfügung.

Ich bedanke mich an dieser Stelle ganz herzlich bei allen, die mich und die NOF-Community in den vergangenen Jahren unterstützt haben.

Beste Grüße nettesekel

Die letzten Beiträge

Autor Thema: PHP und MySQL -> Erstellung von dynamischen Inhalten  (Gelesen 4456 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung von dynamischen Inhalten
« Antwort #15 am: 17. Juni 2013, 21:53:29 »
Vor dem Tag geben wir jetzt einen etwas umfangreicheren Code ein. Dieser besteht aus zwei Teilen.

Der zweite Teil ist eigentlich die Tabelle mit dem Formular, welche wir eben erstellt haben. An den Teil kommen wir, wenn wir die Tabelle anklicken und im Eigenschaftsfenster Tabellen-HTML anklicken. Der Code der dann angezeigt wird (im oberen Teil des Fensters) einmal kopieren und in einem Text Editor einfügen (ist der Übersichtlichkeit einfacher).
Dann alles rauslöschen, was mit der Gültigkeitsprüfung und der Userauswahl zu tun haben. Diese brauchen wir nicht noch mal, diese ist im Formular enthalten und soll auch nur dort verwendet werden.

Dann müssen noch die Bezeichnungen für die Formularfelder noch geändert werden. Anstelle von einer festen Bezeichnung verwenden wir Variablen. Diese Angaben <input id="Eingabefeld56" type="text" name="Land" ändern wir in <input id="Eingabefeld56" type="text" name="$Land".

Das machen wir für Land, Text, Alttext und Datei. Dann sollte das Konstrukt entstehen:
Code: PHP
  1. echo "<tr style=\"height:25px\">";
  2. echo "<td>";
  3. echo "<p>Land:</p>";
  4. echo "</td>";
  5. echo "<td>";
  6. echo "<p>Text:</p>";
  7. echo "<td>";
  8. echo "</tr>";
  9. echo "<tr style=\"height:25px\">";
  10. echo "<td>";
  11. echo "<p><input type=\"text\" name=\"$Land\" style=\"white-space: pre;\" value=\"\" size=\"24\" maxlength=\"50\"></p>";
  12. echo "</td>";
  13. echo "<td>";
  14. echo "<p><input type=\"text\" name=\"$Text\" style=\"white-space: pre;\" value=\"\" size=\"60\" maxlength=\"300\"></p>";
  15. echo "</td>";
  16. echo "</tr>";
  17. echo "<tr style=\"height:25px\">";
  18. echo "<td>";
  19. echo "<p>Datei:</p>";
  20. echo "</td>";
  21. echo "<td>";
  22. echo "<p>Alt-Text:</p>";
  23. echo "<td>";
  24. echo "</tr>";
  25. echo "<tr style=\"height:25px\">";
  26. echo "<td>";
  27. echo "<p><input type=\"text\" name=\"$Datei\" style=\"white-space: pre;\" value=\"\" size=\"24\" maxlength=\"50\"></p>";
  28. echo "</td>";
  29. echo "<td>";
  30. echo "<p><input type=\"text\" name=\"$Alttitel\" style=\"white-space: pre;\" value=\"\" size=\"60\" maxlength=\"80\"></p>";
  31. echo "</td>";
  32. echo "</tr>";

Anmerkung: Die Tabelle welche Ihr nun haben solltet, sieht ein klein wenig anders aus. Ich bin es inzwischen gewohnt auch solche Codes PHP-tauglich zu machen. Deswegen steht überall ein echo davor und die " innerhalb des Codes sind mit einem \ maskiert.

Ich hoffe Ihr konntet mir bis hierhin folgen...

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung von dynamischen Inhalten
« Antwort #16 am: 17. Juni 2013, 22:07:43 »
Der erste Teil ist der eigentliche Clou:

Code: PHP
  1. $y = 2;
  2.  
  3. while($y < 13) {
  4.  
  5. $Land = "Land";
  6. $Land .= $y;
  7. $Text = "Text";
  8. $Text .= $y;
  9. $Alttitel = "Alttitel";
  10. $Alttitel .= $y;
  11. $Datei = "Datei";
  12. $Datei .= $y;
  13.  
  14.  
  15. Hier kommt der zweite Teil, die Tabelle rein.
  16.  
  17.  
  18. $y++;
  19.  
  20. }

Was machen wir hier?

$y = 2;
Das ist eine Zahl, die mit einer Schleife verglichen werden soll. Sie ist absichtlich 2, da das eigentliche Formular ja bereits der 1. Eintrag ist.

while($y < 13) {
Damit sagen wir, wir möchten so lange eine Schleife durchlaufen, bis die Variable $y gleich groß der Zahl 13 ist. Da wir mit der 2 begonnen haben, wird die Schleife insgesamt 12 Mal durchlaufen (zzgl. des eigentlichen Formulares haben wir also in Summe 13 Durchgänge).
Ergo: Möchte ich nachher 50 Mal die Einträge im Formular generieren, ist einfach die Zahl 13 in eine 50 zu ändern.

$Land = "Land";
$Land .= $y;
$Text = "Text";
$Text .= $y;
$Alttitel = "Alttitel";
$Alttitel .= $y;
$Datei = "Datei";
$Datei .= $y;
Das ist der spannende Teil. Wir erinnern uns, im zweiten Teil (in der Tabelle) haben wir genau diese Variablen eingetragen. Was passiert hier?
Die Variable $Land bekommt den Namen Land. Mit .$y wird die Variable $y angehangen. Somit lautet die Variable $Land nun Land2.
Mit jedem Durchlauf erhöht sich die Zahl und wir erhalten somit je Durchlauf Land3, Land, 4, Land5, usw.
Damit können wir die Eingabefelder unterscheiden.
Genau so behandeln wir die Variablen $Text, $Alttext und $Datei.

$y++;
hier wird die Variable um 1 erhöht.

}
das ist das Ende der Schleife. Von hier wird immer zum Befehl while gesprungen, die die Bedingung ($y < 13) erfüllt ist.

Also haben wir zwei Dinge mit dem Code gemacht:
1. Die Eingabefelder in Teil 1 des Codes sind Variablen, welche durch Teil 2 des Codes alle eine eindeutige Bezeichnung erhalten haben.
2. Durch die Schleife in Teil 2 wird die Tabelle aus Teil 1 mehrfach durchlaufen.

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung von dynamischen Inhalten
« Antwort #17 am: 17. Juni 2013, 22:08:55 »
Also vor dem Tag kommt dieser (nun komplette) Code rein:

Code: PHP
  1. <?php
  2.  
  3. $y = 2;
  4.  
  5. while($y < 13) {
  6.  
  7. $Land = "Land";
  8. $Land .= $y;
  9. $Text = "Text";
  10. $Text .= $y;
  11. $Alttitel = "Alttitel";
  12. $Alttitel .= $y;
  13. $Datei = "Datei";
  14. $Datei .= $y;
  15.  
  16. echo "<tr style=\"height:25px\">";
  17. echo "<td>";
  18. echo "<p>Land:</p>";
  19. echo "</td>";
  20. echo "<td>";
  21. echo "<p>Text:</p>";
  22. echo "<td>";
  23. echo "</tr>";
  24. echo "<tr style=\"height:25px\">";
  25. echo "<td>";
  26. echo "<p><input type=\"text\" name=\"$Land\" style=\"white-space: pre;\" value=\"\" size=\"24\" maxlength=\"50\"></p>";
  27. echo "</td>";
  28. echo "<td>";
  29. echo "<p><input type=\"text\" name=\"$Text\" style=\"white-space: pre;\" value=\"\" size=\"60\" maxlength=\"300\"></p>";
  30. echo "</td>";
  31. echo "</tr>";
  32. echo "<tr style=\"height:25px\">";
  33. echo "<td>";
  34. echo "<p>Datei:</p>";
  35. echo "</td>";
  36. echo "<td>";
  37. echo "<p>Alt-Text:</p>";
  38. echo "<td>";
  39. echo "</tr>";
  40. echo "<tr style=\"height:25px\">";
  41. echo "<td>";
  42. echo "<p><input type=\"text\" name=\"$Datei\" style=\"white-space: pre;\" value=\"\" size=\"24\" maxlength=\"50\"></p>";
  43. echo "</td>";
  44. echo "<td>";
  45. echo "<p><input type=\"text\" name=\"$Alttitel\" style=\"white-space: pre;\" value=\"\" size=\"60\" maxlength=\"80\"></p>";
  46. echo "</td>";
  47. echo "</tr>";
  48.  
  49.  
  50.  
  51. $y++;
  52.  
  53. }
  54.  
  55. ?>
  56.  
  57. <!--

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung von dynamischen Inhalten
« Antwort #18 am: 17. Juni 2013, 22:16:35 »
Jetzt müssen wir die Daten aus dem Formular noch verarbeiten.

Wir werden eine Abfrage einfügen, ob jetzt Daten zu verarbeiten sind, oder ob das Formular angezeigt werden soll.

Code: PHP
  1. if (empty($_POST['Passwort'])) {

Damit prüfen wir, ob ein Passwort eingegeben wurde. Wenn ja, dann soll das Formular verarbeitet werden.
Wurde kein Passwort eingegeben, dann soll das Formular ohne Aktivitäten angezeigt werden, damit wir es befüllen können.

Dann müssen wir die Felder auslesen, die wir befüllt haben. Das machen wir damit:

Code: PHP
  1. $Passwort = $_POST['Passwort'];
  2. $User = $_POST['User'];
  3. $Land = $_POST['Land'];
  4. $Alttext= $_POST['Alttext'];
  5. $Text = $_POST['Text'];
  6. $Datei = $_POST['Datei'];
« Letzte Änderung: 17. Juni 2013, 22:19:28 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung von dynamischen Inhalten
« Antwort #19 am: 17. Juni 2013, 22:19:07 »
Als nächste Funktion erfolgt die Prüfung, ob der User das korrekte Passwort eingegeben hat. Dazu lesen wir das Passwort aus der Datenbank aus und vergleichen es mit der Eingabe des Users:

Code: PHP
  1. $sql2="SELECT Zugriff FROM Zugang WHERE User = '$User'";
  2. $result2 = mysql_query($sql2);
  3. $row2 = mysql_fetch_array($result2);
  4.  
  5. if ($Passwort == $row2["Zugriff"]) {

Ist das Passwort richtig, dann erfolgt der Eintrag der Daten des Formulars in die Datenbank:

Code: PHP
  1. mysql_query("INSERT INTO Ratings (Land, Text, Alttext, Datei) VALUES ('$Land', '$Text', '$Alttext', '$Datei')");

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung von dynamischen Inhalten
« Antwort #20 am: 17. Juni 2013, 22:20:59 »
Nachdem das Script alles eingetragen und gespeichert hat, soll wieder die ursprüngliche Seite aufgerufen werden:

Code: PHP
  1. header("Location: seitenname.php");

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung von dynamischen Inhalten
« Antwort #21 am: 17. Juni 2013, 22:27:42 »
Wir müssen noch die Formularfelder auslesen, welche wir vorhin mit einer Schleife erstellt haben. Somit muss auch die Abfrage der Daten per Schleife erfolgen:

Code: PHP
  1. $x = 2;
  2.  
  3. while($x < 13) {
  4.  
  5. $Land = "Land";
  6. $Land .= $x;
  7. $Text = "Text";
  8. $Text .= $x;
  9. $Alttext = "Alttext";
  10. $Alttext .= $x;
  11. $Datei = "Datei";
  12. $Datei .= $x;

Und noch eine Abfrage, ob die Felder aus der Schleife überhaupt befüllt sind:
Code: PHP
  1. if (empty($_POST[$Land])) {
Schließendlich wollen wir ja nicht zwingend immer alle Felder befüllen. Manchmak haben wir ja nur 4 oder 5 Einträge zu machen, obwohl 13 Eingabemöglichkeiten bestehen.

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung von dynamischen Inhalten
« Antwort #22 am: 17. Juni 2013, 22:32:53 »
Und hier nun das gesamte Script, wie es jetzt nun in den Layout-Eigenschaften einzutragen ist:

Code: PHP
  1. <?php
  2.  
  3. include("./html/datenbank.php");
  4.  
  5. if (empty($_POST['Passwort'])) {
  6. } else {
  7.  
  8. $Passwort = $_POST['Passwort'];
  9. $User = $_POST['User'];
  10. $Land = $_POST['Land'];
  11. $Alttext= $_POST['Alttext'];
  12. $Text = $_POST['Text'];
  13. $Datei = $_POST['Datei'];
  14.  
  15. $sql2="SELECT Zugriff FROM Zugang WHERE User = '$User'";
  16. $result2 = mysql_query($sql2);
  17. $row2 = mysql_fetch_array($result2);
  18.  
  19. if ($Passwort == $row2["Zugriff"]) {
  20.  
  21.  
  22. mysql_query("INSERT INTO Ratings (Land, Text, Alttext, Datei) VALUES ('$Land', '$Text', '$Alttext', '$Datei')");
  23.  
  24. $x = 2;
  25.  
  26. while($x < 13) {
  27.  
  28. $Land = "Land";
  29. $Land .= $x;
  30. $Text = "Text";
  31. $Text .= $x;
  32. $Alttext = "Alttext";
  33. $Alttext .= $x;
  34. $Datei = "Datei";
  35. $Datei .= $x;
  36.  
  37. if (empty($_POST[$Land])) {
  38. } else {
  39.  
  40. $Land = $_POST[$Land];
  41. $Text = $_POST[$Text];
  42. $Alttext = $_POST[$Alttext];
  43. $Datei = $_POST[$Datei];
  44.  
  45. mysql_query("INSERT INTO Ratings (Land, Text, Alttext, Datei) VALUES ('$Land', '$Text', '$Alttext', '$Datei')");
  46.  
  47. }
  48.  
  49.  
  50. $x++;
  51. }
  52.  
  53.  
  54. header("Location: seitenname.php");
  55.  
  56. } else {
  57.  
  58. }
  59.  
  60. }
  61.  
  62. ?>

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung von dynamischen Inhalten
« Antwort #23 am: 17. Juni 2013, 22:37:14 »
Damit haben wir das Eingabeformular fertig gestellt. Nun können wir an die Ausgabe gehen.

Wir erstellen in NOF eine weitere Seite und stellen diese ebenfalls auf PHP um:
Umstellung der Seite auf PHP

Auch hier stellen wir die Verbindung zu der MySQL Datenbank her.
Verbindung zur MySQL Datenbank herstellen

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung von dynamischen Inhalten
« Antwort #24 am: 19. Juni 2013, 20:44:49 »
Auch diese Seite ergänzen wir mit einem Code:

Code: PHP
  1. <?php
  2. include("./html/datenbank.php");
  3.  
  4. $Land = array();
  5.  
  6. $sql="SELECT Land FROM Ratings GROUP BY Land";
  7. $result = mysql_query($sql);
  8. while($row = mysql_fetch_array($result)){
  9. $Land[] = $row['Land'];
  10. }
  11.  
  12. $Zahl = count ($Land);
  13.  
  14. ?>

Hier ermitteln wir alle eingetragenen Länder und gruppieren diese. Das bedeutet, dass alle gleichen eingetragenen Länder zu einer Gruppe zusammengefasst werden.
Somit bekommen wir jedes eingetragene Land exakt einmal ausgegeben.
Mit dem Code $Land = array() definieren wir ein Array, welches mehrere (getrennte) Inhalte hat. Diese können dann mit $array[0] oder $array[1] aufgerufen werden.
Mit $Land[] = $row['Land'] fügen wir dann die Angaben der Länder nach und nach in das Array, da wir eine Schleife durchlaufen.
Also mit jedem Durchgang der Schleife wird ein weiteres Land in das Array gepackt und zwar so lange, bis alle (gruppierten) Länder ermittelt und übergeben sind.
Zum Abschluss zählen wir noch, wie viele Länder sich nun im Array befinden: $Zahl = count ($Land);

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung von dynamischen Inhalten
« Antwort #25 am: 19. Juni 2013, 21:03:15 »
Jetzt geht es an die eigentliche Ausgabe. Mir ist bekannt das Tabellen jetzt nicht gedacht sind, um die Gestaltung zu übernehmen, dennoch mache ich so etwas gerne mit Tabellen, da es recht einfach ist. Natürlich kann das auch mit Layout-Bereichen gemacht werden.

Wir erstellen eine Tabelle mit 2 Spalten und 2 Zeilen. Damit wir die Stellen auch gleich problemlos wiederfinden, tragen wir Platzhalter ein, wo später die Ausgabe des Landes, des Bildes und der Beschreibung stehen soll.

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung von dynamischen Inhalten
« Antwort #26 am: 19. Juni 2013, 21:06:12 »
Jetzt klicken wir in den Tabellen-Eigenschaften auf Tabellen-HTML. Der Code der im oberen Teil steht, kopieren wir einfach und fügen ihn in einen Editor ein (unter Zubehör von Windows gibt es den einfachen Editor, der reicht für diese Zwecke).

Das ist der kopierte Code:
Code: HTML5
  1. <table id="Tabelle414" border="0" cellspacing="0" cellpadding="0" width="100%" style="height: 87;" >
  2.  <tr style="height:43px">
  3.   <td width="188">
  4.    <p>Land</p>
  5.   </td>
  6.   <td width="328"></td>
  7.  </tr>
  8.  <tr style="height:43px">
  9.   <td>
  10.    <p>Bild</p>
  11.   </td>
  12.   <td>
  13.    <p>Beschreibung</p>
  14.   </td>
  15.  </tr>

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung von dynamischen Inhalten
« Antwort #27 am: 19. Juni 2013, 21:14:40 »
Die Tabelle kann wieder gelöscht werden, wir haben den HTML Code kopiert.

Nun erstellen wir ein Textfeld, in welchem nun die Anzeige erfolgen wird.
In den Texteigenschaften den Button HTML betätigen (das Textfeld aufziehen, an anderer Stelle ins Layout klicken und dann das Textfeld anklicken -> dann ist das Eigenschaftsfenster zu sehen).

Vor dem Tag kommt jetzt ein wenig Code rein und die kopierte Tabelle. Im Eingabeformular haben wir ja auch schon eine Tabelle in eine Schleife gepackt, hier machen wir das Gleiche. In diesem Fall werden wir die Tabelle nicht PHP tauglich machen, sondern in ihrem Ursprung lassen. Diese Technik kann im Eingabeformular natürlich auch angewendet werden.

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung von dynamischen Inhalten
« Antwort #28 am: 19. Juni 2013, 21:22:21 »
Nun kommt der erste Teil des Codes:

Code: PHP
  1. <?php
  2.  
  3. $a = 0;
  4. while($a < $Zahl) {
  5.  
  6. $sql2="SELECT Land, Text, Alttext, Datei FROM Ratings WHERE Land LIKE '$Land[$a]'";
  7. $result2 = mysql_query($sql2);
  8. ?>
Hier lesen wir die Daten aus der Datenbank, welche dem Array[0] entspricht. Wir erinnern uns, Das Array haben wir vorhin mit den Ländern befüllt. Im ersten Durchlauf (wir haben hier eine Schleife) ist das Array 0, im nächsten Durchlauf erhöht sich as Array um 1 (die Erhöhung des Zählers kommt gleich noch). Wir lassen das Script so oft durchlaufen, bis die Anzahl der Durchläufe gleich der Zahl sind, welche die Anzahl der Arrays gezählt hat while($a < $Zahl) {

Hans K.

  • Gast
Re: PHP und MySQL -> Erstellung von dynamischen Inhalten
« Antwort #29 am: 19. Juni 2013, 21:42:26 »
Jetzt kommt der zweite Teil, der die soeben kopierte Tabelle beinhaltet.
Den Code müssen wir natürlich modifizieren, da wir nun die Informationen aus der Datenbank einbauen müssen. Wir hatten uns Platzhalter eingetragen, welche wir nun ersetzen.

Bei dem Platzhalter Land tragen wir diesen Codeteil ein:
Code: PHP
  1. <?php echo $Land[$a]; ?>

Vor der Tabellenzeile mit dem Bild und der Beschreibung müssen wir noch eine Schleife einbauen:
Code: PHP
  1. <?php
  2. while($row2 = mysql_fetch_array($result2)){
  3. ?>
Hier soll ja jeder Eintrag angezeigt werden, welcher zu dem Land in der Datenbank vorhanden ist.

An der Stelle wo wir das Bild eingetragen haben kommt der Code hin:
Code: PHP
  1. <?php echo "<img src=\"/assets/images/". $row2["Datei"]. "\""." ALT=\"". $row2["Alttext"]. "\">"; ?>

Hier unterstelle ich, dass der komplette Bildname in der Datenbank eingetragen wird.

An der Stelle Text kommt der Code hin:
Code: PHP
  1. <?php echo $row2["Text"]; ?>

Zum Schluss muss noch die Schleife beendet werden:
Code: PHP
  1. <?php
  2. $a++;
  3. }
  4. ?>

Deutschsprachiges NOF - Forum

Support und Tutorials rund um das Thema NetObjects Fusion

 


Wenn dir dieser Artikel gefallen hat, dann empfehle ihn doch weiter... ;)