SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 07.08.2002, 10:53:29
kogi1 kogi1 ist offline
Anfänger
 
Registriert seit: Jul 2002
Ort: Ostfriesland
Alter: 58
Beiträge: 27
Bewerung gut/schlecht für Artikel

Tja, bin immer noch Laie im Umgang mit PHP.

Habe einen Onlineshop mit ca. 1500 Artikeln.
Jeder Artikel wird dynamisch angezeigt (aus einer Datenbank gelesen).
Möchte nun ein Script einbauen, das jeden Artikel Bewerten läst.

Das Ergebnis soll in Form einer Sternreihe angezeigt werden !
* schlecht
** besser
***** am Besten

Problem:
Aufgrund des Aufbaus der Artikelausgabe muss ich einen Einheitlichen Code für alle Artikel haben.

Artikel positiv Bewerten: votepositiv.php?[NR]
Artikel negativ Bewerten: votenegativ.php?[NR]
Wobei vom Shop aus immer die entsprechende Artikelnummer ergänzt wird !

Das Ergebnis soll unter jedem Artikel per include-Befehl angezeigt werden und in einer text-Datei (kein mysql) gespeichert werden !

Ist sowas möglich ?
Wie sieht der Lösungsansatz dafür aus ?
__________________
Gruss
Kogi
Mit Zitat antworten
  #2  
Alt 07.08.2002, 11:40:18
Ben20
Guest
 
Beiträge: n/a
Natürlich ist sowas möglich. Ich liefer erstmal einen Lösungsansatz. Poste falls Du quelltextnähere Hilfe brauchst.

Zuerst mußt Du dem User ermöglichen über ein Formular den Artikel zu bewerten. Z.B. mit einem Radiobutton oder einem Dropdownlistenfeld.


im Antwortscript öffenst Du zuerst die "Bewertungsdatei" des Artikels. Z.B. [nr].txt

In der Datei sollte drin stehen, viele Sternchen der Artikel hat und wieviele User schon gevotet haben (letztes ist nötig um herauszufinden, wieviel Einfluß die neue Bewertung auf das Gesamtergebniss hat.

Dann teilst Du die Anzahl der vom Besucher gevoteten Sternchen durch die Anzahl der Stimmen. (ich nenne das Ergebniss jetzt mal $erg)

Wenn die Anzahl der Sternchen die der Besucher vergeben hat größer ist als die vorhandenen Sternchen zählst Du $erg zu den vorhanden Sternchen dazu, ansonsten ziehst Du's ab.

Jetzt das Ganze mathematischer:

v = Anzahl der Besucher die diesen Artikel bewertet haben.
x = Anzahl der Sternchen die der Besucher vergeben hat.
z = Anzahl der Sternchen die der Artikel schon hat.

t = x / v

Wenn
v > z dann z = z + t
sonst
z = z - t



Ich hoffe mein Ansatz ist trotz der Theorie verständlich (und logisch richtig ;-) )


edit:

Da fällt mir ein da ist noch ein Fehler drin. Bei jedem abstimmen mußt nicht die "Anzahl der Besucher" sondern die "Anzahl der Besucher + 1" verwenden. Sonst erhälst Du beim ersten besucher eine Divison durch null und die Stimme des Zweiten hätte soviel Gewicht wie wenn keiner gevotet hätte usw.

Außerdem mußt Du hinterher natürlich wieder alles in die Datei speichern, aber das war ja sowieso klar


Geändert von Ben20 (07.08.2002 um 11:46:40 Uhr)
Mit Zitat antworten
  #3  
Alt 07.08.2002, 12:38:58
kogi1 kogi1 ist offline
Anfänger
 
Registriert seit: Jul 2002
Ort: Ostfriesland
Alter: 58
Beiträge: 27
Gut aber ?

sieht gut aus, was Du da schreibtst !
Aber das bedeutet auch, dass ich 1500 nr.txt Dateien anlegen muss !
Oder würden diese Dateien sich selbst erstellen, wenn ich einen Ordner mit CHMOD 777 bereit stelle ?

Leider habe ich, wie gesagt noch kaum Erfahrung im Erstellen von Scripten und kann nur vorhandene etwas durchschauen und evt. umbauen !

Es gibt ja zahlreiche Counter und Bewertungs-Scripts die man sich hier und da runter laden kann, aber die treffen leider alle nicht das, was ich will und erfordern meisten pro Artikel ein eigenes Script das wiederum 1500x anlegen ?
__________________
Gruss
Kogi
Mit Zitat antworten
  #4  
Alt 07.08.2002, 17:27:59
Ben20
Guest
 
Beiträge: n/a
Wenn Du eine Datei zum Schreiben aufmachst, die nicht vorhanden ist, legt er automatisch eine neue an. Du mußt nur noch dafür sorgen, dass die Anfangswerte eingerichtet werden.
Mit Zitat antworten
  #5  
Alt 07.08.2002, 18:11:47
Benutzerbild von Matt
Matt Matt ist offline
Member
 
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
bringt doch nichts...
du hast eine artikelnr, oder?
mach EINE datei, öffne sie in einem schreibmodus, der am ende der datei weiterschreibt, und füge dann immer nach schema:
artikelnr;bewertung werte hinzu, dass das ganze so aussieht:

Code:
2231;2
234;4
91;5
...
jetzt kannst du dann ein php script schreiben, welches die dinger der reihe nach einliest und alle mit der gleichen artikelnummer zusammenzählt, und durch die anzahl der gesamten bewertungen zu dem artikel dividiert. Dann hast du eine durchschnittsbewertung, wenn du nur selbst die bewertung machen willst, brauchst du dasselbe, nur ohne durchschnittsbildung.
du musst dann allerdings eine datei includieren und eine funktion aufrufen, der du sagst, was du willst...
Mit Zitat antworten
  #6  
Alt 07.08.2002, 18:22:46
Ben20
Guest
 
Beiträge: n/a
Ich würde für jeden Artikel 1 Datei öffnen. bei 1500 Artikel kann es leicht passieren das die Datei sonst zweimal geöffnet wird und da kann's zu Problemen kommen (z.B. wird eine Bewertung nicht gezählt).
Mit Zitat antworten
  #7  
Alt 07.08.2002, 22:17:28
kogi1 kogi1 ist offline
Anfänger
 
Registriert seit: Jul 2002
Ort: Ostfriesland
Alter: 58
Beiträge: 27
JA ABER

Das mit dem gleichzeitigen Zugriff bei nur 1. Datei habe ich befürchtet.
Jedoch bin ich immer noch nicht weiter was das konkrete Script angeht !

Wie lege ich automatisch (falls zum 1. mal bewertet wird) eine entsprechende Datei an ?

Wie greife ich drauf zu ?
usw.
__________________
Gruss
Kogi
Mit Zitat antworten
  #8  
Alt 08.08.2002, 11:01:11
Benutzerbild von Matt
Matt Matt ist offline
Member
 
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
das ganze ist recht unrealistisch, vor allem kannst du die datei mit einem schreibschutz versehen, flock() beispielsweise, und dann überprüfen, ob die datei geschützt ist, wenn ja, nochmals überprüfen, bis sie frei ist, und dann selbst öffnen und schützen..
nur als so ne idee, ausserdem verliert man bei 1500 Dateien schnell den überblick und sie erzeugen einen gigantischen overhead.
Mit Zitat antworten
  #9  
Alt 08.08.2002, 11:10:54
bLizZ@WORK bLizZ@WORK ist offline
Anfänger
 
Registriert seit: Jul 2002
Ort: London
Beiträge: 30
Die Datei wird automatisch vom fopen() angelegt, wenn Sie nicht existiert.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:19:57 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt