Deutschsprachiges NOF - Forum

Support und Tutorials rund um das Thema NetObjects Fusion

collapse

* Alles hat ein Ende...

April 2017

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

Absturz bei FTP Publizierung
von nettesekel
16. April 2017, 12:51:56

E-Masil Adresse herausfinden
von nettesekel
11. April 2017, 16:16:20

Keine Neuinstallation möglich
von nettesekel
10. April 2017, 16:00:27

Publizieren geht nicht
von musikavokale
09. April 2017, 23:15:50

NOF 15
von nettesekel
04. April 2017, 23:55:26

Feststehender Seitenbereich
von nettesekel
01. April 2017, 17:37:12

Aufklappbare Navigation
von nettesekel
31. März 2017, 12:50:30

Nov 12 zum hare ausreisen
von Jim Panse
26. März 2017, 11:48:03

Lytebox Dateiablage
von fahrzeugseiten
21. März 2017, 23:23:23

* Schatznasen Feed

* Aquablogger Feed

* Strickzeugs Feed

* Links für Katzenfreunde

* ...

Fachanwalt für Internet-Recht C.Schmietenknop

* Friendship

DER Katzenblog – mit tollen Tipps und Ideen für deine Katze(n) <3

Autor Thema: PHP und MySQL -> Einbau einer Bewertungs- und Kommentarfunktion  (Gelesen 10590 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Hans K.

  • Gast
Wie der Titel bereits beinhaltet, ist ein Paket mit PHP und einer MySQL Datenbank Voraussetzung für die Bewertungs- und Kommentarfunktion.

Als erstes wird der Speicherplatz für die Daten geschaffen. Dafür muss eine Tabelle in der MySQL Datenbank angelegt werden (Zugang ist der Anleitung des Providers zu entnehmen).

Die Tabelle bekommt die Bezeichnung: Kritiken

Benötigt werden 6 Felder:
ID - eine fortlaufende ID, welcher die Funktion auto_increment vergeben werden muss (automatischer Zähler)
Filmid - eine eindeutige Kennzeichnung, wenn mehrere Bewertungsfunktionen verwendet werden
User - der vom User hinterlassene Username
Wertung - die vom User hinterlassene Bewertung
Kritik - der vom User hinterlassene Kommentar
Datum - der Zeitstempel, wann der User seinen Kommentar hinterlassen hat

Die Felder müssen noch als Typ definiert werden:

Id              int(11)
Filmid         int(11)
User          varchar(30)
Wertung    int(11)
Kritik          text
Datum       date

int(11) ist ein reines Zahlenfeld, varchar(30) ist ein feld mit einer Zeichenfolge von maximal 30 Zeichen, text ist ein reines Textfeld ohne Einschränkung und date ist ein Datumsfeld.

« Letzte Änderung: 22. März 2013, 22:23:17 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Einbau einer Bewertungs- und Kommentarfunktion
« Antwort #1 am: 20. März 2013, 21:03:11 »
Als Erstes ist die Seite in NOF auf PHP umzustellen:
Umstellung der Seite auf PHP

Dann wird die Verbindung zu der MySQL Datenbank hergestellt.
Verbindung zur MySQL Datenbank herstellen
« Letzte Änderung: 26. März 2013, 21:02:40 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Einbau einer Bewertungs- und Kommentarfunktion
« Antwort #2 am: 20. März 2013, 21:13:29 »
Nun wird der zuerst eingegebene Code ergänzt.

Code: PHP
  1. <?php
  2. include("./html/datenbank.php");
  3.  
  4.  
  5. if (empty($_POST['Wertung'])) {
  6. } else {
  7.  
  8. $User = $_POST['User'];
  9. $Wertung = $_POST['Wertung'];
  10. $Kritik = $_POST['Kritik'];
  11. $Datum = date("y-m-d");
  12. $Filmid = $_POST['Filmid'];
  13.  
  14. $Textauschluss = "http://";
  15. $pos = strpos($Bewertung, $Textauschluss);
  16.  
  17. if ($pos === false) {
  18. mysql_query("INSERT INTO Kritiken (Filmid, User, Wertung, Kritik, Datum) VALUES ('$Filmid', '$User', '$Wertung', '$Kritik', '$Datum')");
  19. } else {
  20.  
  21. }
  22.  
  23. header("Location: seitenname.php");
  24.  
  25. }
  26. ?>

Mit dem Teil werden die Daten aus dem Formular ausgelesen (das Formular kommt noch):
$User = $_POST['User'];
$Wertung = $_POST['Wertung'];
$Kritik = $_POST['Kritik'];
$Datum = date("y-m-d");
$Filmid = $_POST['Filmid'];

Hier wird geprüft, ob eine URL eingegeben wurde (falls ja, erfolgt kein Eintrag):
$Textauschluss = "http://";
$pos = strpos($Bewertung, $Textauschluss);

Damit werden die Daten des Users in die Datenbank geschrieben:
mysql_query("INSERT INTO Kritiken (Filmid, User, Wertung, Kritik, Datum) VALUES ('$Filmid', '$User', '$Wertung', '$Kritik', '$Datum')");

Und zuletzt wird nach erfolgtem Eintrag die Seite aktualisiert aufgerufen (dabei ist der Seitenname ohne Domäne z.B. impressum.php einzutragen):
header("Location: seitenname.php");
« Letzte Änderung: 26. März 2013, 21:04:04 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Einbau einer Bewertungs- und Kommentarfunktion
« Antwort #3 am: 20. März 2013, 21:48:47 »
Nun ist ein Textfeld zu erstellen und dort zu positionieren, wo nachher die Einträge der User zu sehen sein sollen. 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 ist der Code einzugeben:

Code: PHP
  1. <?php
  2.  
  3. $sql2="SELECT User, Kritik, Wertung, DATE_FORMAT(Datum, '%d.%m.%Y') as Datum_formatiert FROM Kritiken WHERE Filmid = $film_id ORDER BY Datum ASC";
  4.  
  5. $result2 = mysql_query($sql2);
  6. $anzahl = mysql_num_rows ($result2);
  7.  
  8. if ($anzahl == 0) {
  9. echo "<table border="0" cellspacing="0" cellpadding="0" width="560" style="height: 18">";
  10. echo "<tr style="height:18px"> <td width="560">". "Wertung: ". "Noch keine Userwertung vorhanden.". "</td> </tr>";
  11. echo "</table>";
  12. } else {
  13.  
  14. while ($row2 = mysql_fetch_array($result2)) {
  15.  
  16. echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"560\" style=\"height: 18\">";
  17.  
  18. echo "<tr style=\"height:18px\"> <td colspan=\"2\">". $row2["Kritik"]. "</td></tr>";
  19.  
  20. echo "<tr style=\"height:18px\"> <td width=\"290\">". "Wertung: ". $row2["Wertung"]. " Sterne". "</td>". "<td width=\"270\" align=\"right\">".  $row2["User"]. "&nbsp; &nbsp;". $row2["Datum_formatiert"]. "</td></tr>";
  21. echo "</table>";
  22. echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"560\" style=\"height: 18\">";
  23.  
  24. echo "<tr style=\"height:18px\"> <td width=\"560\">";
  25. $zaehler = 1;
  26. while ($zaehler <= $row2["Wertung"]) {
  27. echo "<img src=\"../Ordner/Stern1.png\" ALT=\"\">";
  28. $zaehler++;
  29. }
  30.  
  31. while ($zaehler <= 10) {
  32. echo "<img src=\"../Ordner/Stern2.png\" ALT=\"\">";
  33. $zaehler++;
  34. }
  35.  
  36. echo "<tr style=\"height:1px\">";
  37. echo "<td width=\"560\" style=\"vertical-align: left\">". "<hr noshade size=\"1\" width=\"95%\" align=\"left\"></td></tr>";
  38.  
  39.  
  40. }
  41. echo "</table>";
  42. }
  43. ?>

In diesem Code sind Tabellen zu besseren Positionierung der Kritiken/Kommentare definiert, bei Bedarf sind diese anzupassen.

Zu Beginn des Codes ist eine Variable definiert: ...WHERE Filmid = $film_id
Die $film_id ist sozusagen die Nummer für die Bewertungsfunktion. Werden auf verschiedene Seiten weitere Bewertungsfunktionen verbaut, bekommt jede Funktion eine eigene Nummer. Dadurch werden sämtliche Bewertungen/Kommentare alle in der gleichen Datenbank gespeichert und es müssen nicht weitere Tabellen in der MySQL Datenbank angelegt werden.
« Letzte Änderung: 26. März 2013, 21:04:34 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Einbau einer Bewertungs- und Kommentarfunktion
« Antwort #4 am: 20. März 2013, 21:58:25 »
Die $film_id ist auf jeder Seite, wo die Bewertungsfunktion eingesetzt wird, mit einer anderen Zahl zu versehen.  Das sollte dann so aussehen:

$film_id = '1';

oder

$film_id = '299';

Diese Definition der Variable ist noch in dem Code im Layout einzufügen. Zum Beispiel hier:

Code: PHP
  1. $conn=mysql_connect($db_server, $db_benutzer, $db_passwort);
  2. mysql_select_db($db_name);
  3.  
  4. $film_id = '1';
  5.  

Nun kann man durchaus die Frage stellen, warum wird das mit einer Variablen gelöst und nicht direkt als feste Zahl?
Hintergrund:
Es kann durchaus hilfreich sein, wenn z.B. mehrere Seiten dynamisch erstellt sind. Dann kann die Variable ebenfalls dynamisch befüllt werden und auch die Bewertungsfunktion muss nur einmal erstellt werden.
(wenn ich mal mehr Zeit habe, erstelle ich ein Tut zur dynamischen Seitengestaltung)
« Letzte Änderung: 26. März 2013, 21:05:13 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Einbau einer Bewertungs- und Kommentarfunktion
« Antwort #5 am: 20. März 2013, 22:06:32 »
Wer möchte kann sich die durchschnittliche Bewertung anzeigen lassen.

Dazu ist ein weiteres Textfeld zu erstellen und ebenfalls zu positionieren, wo nachher der Durchschnitt zu sehen sein soll. 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 ist der Code einzugeben:

Code: PHP
  1. <?php
  2.  
  3. $sql3="SELECT ROUND(AVG(Wertung),1) AS Durchschnitt FROM Kritiken WHERE Filmid = $film_id";
  4. $sql4="SELECT (MOD (ROUND(AVG(Wertung),1), 1) * 10) AS KommaDurchschnitt FROM Kritiken WHERE Filmid = $film_id";
  5.  
  6. $result3 = mysql_query($sql3);
  7. $row3 = mysql_fetch_array($result3);
  8.  
  9. if ($row3["Durchschnitt"] == 0) {
  10. } else {
  11. echo "Durchschnittliche Userwertung: ". $row3["Durchschnitt"]. " Sterne";
  12.  
  13. $result4 = mysql_query($sql4);
  14. $row4 = mysql_fetch_array($result4);
  15.  
  16. $row4["KommaDurchschnitt"] = (Round($row4["KommaDurchschnitt"]));
  17.  
  18. $zaehler2 = 1;
  19. while ($zaehler2 <= $row3["Durchschnitt"]) {
  20. echo "<img src=\"../Ordner/Stern1.png\" ALT=\"\">";
  21. $zaehler2++;
  22. }
  23.  
  24. switch ($row4["KommaDurchschnitt"]) {
  25. case 0:
  26.     break;
  27. case 1:
  28. echo "<img src=\"../Ordner/Stern3.png\" ALT=\"\">";
  29. $zaehler2++;
  30.     break;
  31. case 2:
  32. echo "<img src=\"../Ordner/Stern4.png\" ALT=\"\">";
  33. $zaehler2++;
  34.     break;
  35. case 3:
  36. echo "<img src=\"../Ordner/Stern5.png\" ALT=\"\">";
  37. $zaehler2++;
  38.     break;
  39. case 4:
  40. echo "<img src=\"../Ordner/Stern6.png\" ALT=\"\">";
  41. $zaehler2++;
  42.     break;
  43. case 5:
  44. echo "<img src=\"../Ordner/Stern7.png\" ALT=\"\">";
  45. $zaehler2++;
  46.     break;
  47. case 6:
  48. echo "<img src=\"../Ordner/Stern8.png\" ALT=\"\">";
  49. $zaehler2++;
  50.     break;
  51. case 7:
  52. echo "<img src=\"../Ordner/Stern9.png\" ALT=\"\">";
  53. $zaehler2++;
  54.     break;
  55. case 8:
  56. echo "<img src=\"../Ordner/Stern10.png\" ALT=\"\">";
  57. $zaehler2++;
  58.     break;
  59. case 9:
  60. echo "<img src=\"../Ordner/Stern11.png\" ALT=\"\">";
  61. $zaehler2++;
  62.     break;
  63. }
  64.  
  65. while ($zaehler2 <= 10) {
  66. echo "<img src=\"../Ordner/Stern2.png\" ALT=\"\">";
  67. $zaehler2++;
  68. }
  69.  
  70. }
  71.  
  72. ?>
« Letzte Änderung: 26. März 2013, 21:05:53 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Einbau einer Bewertungs- und Kommentarfunktion
« Antwort #6 am: 20. März 2013, 22:25:43 »
Wer aufgepasst hat, wird in den beiden letzten Codes etwas entdeckt haben:

Code: PHP
  1. echo "<img src=\"../Ordner/Stern1.png\" ALT=\"\">";
  2.  
  3. echo "<img src=\"../Ordner/Stern2.png\" ALT=\"\">";

Die Bewertungen werden mit Sternen graphisch dargestellt. Dazu ist auf dem Webspace ein Ordner anzulegen, in welchem die Grafiken abzuspeichern sind. Der Ordnername ist in den beiden Codes anzupassen, bei Bedarf auch die Namen der Grafiken.

Als Anhang sind die erforderlichen Grafiken zu finden. Diese habe ich selber erstellt und dürfen gerne verwendet werden.
« Letzte Änderung: 26. März 2013, 21:06:17 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Einbau einer Bewertungs- und Kommentarfunktion
« Antwort #7 am: 20. März 2013, 22:26:39 »
Da ich nur 4 Bilder anhängen kann, hier die weiteren Sterne.

Hans K.

  • Gast
Re: PHP und MySQL -> Einbau einer Bewertungs- und Kommentarfunktion
« Antwort #8 am: 20. März 2013, 22:27:21 »
Und die letzten Grafiken...

Hans K.

  • Gast
Re: PHP und MySQL -> Einbau einer Bewertungs- und Kommentarfunktion
« Antwort #9 am: 21. März 2013, 20:05:27 »
Nun wird eine neue Tabelle erstellt, welche die Eingabefelder beinhalten wird. Die Tabelle wird mit Farben und Rahmen so gestaltet, wie es nachher aussehen soll. Dann wird in den Tabelle-Eigenschaften der Haken bei "Tabelle ist ein Formular" gesetzt.

Hans K.

  • Gast
Re: PHP und MySQL -> Einbau einer Bewertungs- und Kommentarfunktion
« Antwort #10 am: 21. März 2013, 20:20:05 »
Nun kommen drei Eingabefelder:

Bei den Formularwerkzeugen ist das "Eingabefeld" auszuwählen und in der Tabelle zu platzieren.
Als Nächstes ist das "Auswahlfeld" aus den Werkzeugen auszuwählen und ebenfalls in der Tabelle zu platzieren.
Das dritte Feld ist das "mehrzeilige Eingabefeld", welches ebenfalls in der Tabelle eingefügt wird.


Zum Abschluss wird eine "Schaltfläche" aus den Formularwerkzeugen ausgewählt und als Abschluss in die Tabelle eingefügt.
« Letzte Änderung: 21. März 2013, 21:00:22 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Einbau einer Bewertungs- und Kommentarfunktion
« Antwort #11 am: 21. März 2013, 20:36:43 »
Jetzt werden die Eigenschaften der Eingabefelder definiert.

Das erste Eingabefeld bekommt folgende Eingabefeld-Eigenschaften:
Name: User
Typ: Einzeilig
Text: Username
« Letzte Änderung: 21. März 2013, 21:03:24 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Einbau einer Bewertungs- und Kommentarfunktion
« Antwort #12 am: 21. März 2013, 20:47:39 »
Das Auswahlfeld bekommt die Eigenschaften:

Name: Wertung
Typ: Dropdown

Auf der rechten Seite der Eigenschaften ist ein Plus-Zeichen, damit werden die Wertungen hinzugefügt, welche der User auswählen kann. Also das Plus-Zeichen betätigen und im darauf hin erscheinenden Fenster den Namen und den Wert eintragen.

Der Name ist "1 Stern" der Wert ist 1, dann wieder das Plus-Zeichen drücken und den nächsten Wert eingeben. 2 Sterne als Name und 2 als Wert. Das Ganze wiederholen, bis 10 Sterne eingegeben sind.

Bei einem der Werte kann ein Haken bei "Standardmäßig ausgewählt" gesetzt werden. Das dient dazu, dass falls der User vergisst dieses auszuwählen, ist wenigstens ein Wert vorbelegt und dieser wird dann eingetragen.
« Letzte Änderung: 21. März 2013, 21:08:01 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Einbau einer Bewertungs- und Kommentarfunktion
« Antwort #13 am: 21. März 2013, 20:51:06 »
Das mehrzeilige Eingabefeld bekommt folgende Eigenschaften:

Name: Bewertung
Typ: Mehrzeilig
Text:
« Letzte Änderung: 21. März 2013, 21:09:42 von Hans K. »

Hans K.

  • Gast
Re: PHP und MySQL -> Einbau einer Bewertungs- und Kommentarfunktion
« Antwort #14 am: 21. März 2013, 21:17:52 »
Die Schaltfläche bekommt die Eigenschaften:

Name: Eintragen
Typ: Senden
Wert: Eintragen

Deutschsprachiges NOF - Forum

Support und Tutorials rund um das Thema NetObjects Fusion