php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 22-08-2009, 14:59
melaoueh
 Registrierter Benutzer
Links : Onlinestatus : melaoueh ist offline
Registriert seit: Aug 2009
Beiträge: 5
melaoueh befindet sich auf einem aufstrebenden Ast
Post Php priorisierung

Hallo allerseits,

Ihc bin Neu im PhP entwicklung, une habe wenig erfahrung, deswegen Wende ich mich an Euch mit der Hoffnung auf Hilfe.

Ich habe einSpiel Programiert wo jedes mal ein Bild aus dem Datenbank geladen wird. zZ sind ca. 30 Bilder im Datenbank also 30 Verschiedene Spiele.
Bis jetzt habe ich es so Implementiert das jedesmal wo ein User auf der webseite kommt und das spiel startet , wird ein Bild samt einstellung aus der datenbank zufällig geladen.
Folgende SQl Aufruf lädt die einzelne Spiele
Code:
SELECT * FROM tabelle WHERE active ='1' ORDER BY RANDOM() LIMIT 1"
Nun wil mein Chef das die zuletzt hingefügte Spiele als erstes auftauchen und nciht mehr Zufällig. DH:
Besucher1 will spielen wird der letztes hingefügtes objekt geladen
Besucher2 bekomtm das voletztes hingefügtes Objekt.
Besucher3 das Objekt davor.
etc...
Sollen alle Bilde durschgespielt werden, wir dvon vorne angefangen.

Mindestens Anforderung ist so ein Art Priorisierung einzubauen, wo die zuletzt hingefügte Objekte am heifigsten auftauchen.

Mit fällt da wirklcih kein Idée wie ich das machen könnte.Eine gute Idee würde mir Reichen.

Ich Danke Euch um Eure Hilfe.

Grüsse

Benjamin
Mit Zitat antworten
  #2 (permalink)  
Alt 22-08-2009, 15:12
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

um so etwas geht es hier grad: ein Tupel "zufällig" auswählen, die Wahrscheinlichkeit wird über Attribut bestimmt

Vielleicht ist da schon was für dich dabei

Gruß,

Anja
Mit Zitat antworten
  #3 (permalink)  
Alt 22-08-2009, 17:45
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

@Anja: Das wird ihm nicht helfen, sein Problem ist anders. Er hatte bisher den Zufall verwendet, will jetzt aber weg davon.

Du brauchst zunächst mal eine Spalte anhand der du sortieren kannst, den Timestamp des Hinzufügens oder eine laufende Nummer. Dann brauchst du noch eine Spalte in der die Einträge als benutzt markiert werden können.
Zur Auswahl des ersten noch unbenutzen Bildes genügt dann
SELECT ... FROM ... WHERE used != 1 ORDER BY created DESC
Wenn das einen Eintrag liefert, musst du ihn sofort* als benutzt markieren (UPDATE ... SET used = 1 WHERE id = ...). Bekommst du keinen Eintrag, sind schon alle Bilder benutzt. In diesem Fall willst du von vorn anfangen - also alle als unbenutzt markieren (UPDATE ... SET used = 0) und von vorn anfangen (o.g. SELECT).

*) Stichwort LOCK TABLES
Mit Zitat antworten
  #4 (permalink)  
Alt 22-08-2009, 18:04
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Oder man lässt für die Anzahl der Benutzungen einen Zähler hochzählen - und aus allen Bildern mit minimalem Zählerstand wird dann zufällig eins ausgewählt.

Ist halt die Frage, ob man noch "ein bisschen Zufall" drin haben will, oder nicht.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 24-08-2009, 11:44
melaoueh
 Registrierter Benutzer
Links : Onlinestatus : melaoueh ist offline
Registriert seit: Aug 2009
Beiträge: 5
melaoueh befindet sich auf einem aufstrebenden Ast
Standard

Hallo,
Danke Euch für Eure Hilfreiche Antworten

Ich habe nun 2 Möglichkeiten,
*entweder die Idee von Anja
*oder ich speicher in eien Spalte der Datum der letztes erscheinen. Die neue Bilder bekomen dann ein altes Datum damit die als erstes auftauchen. Damit verliert man halt den zufall faktor, was mir persönlich nicht gefällt. muss aber mein Chef enscheiden.

Die 2te Möglichkeit, klingt kompliziert. Aber mal sehen was draus wird.

Danke
Grüsse

Benjamin
Mit Zitat antworten
  #6 (permalink)  
Alt 24-08-2009, 13:19
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Um die zweite Variante noch komplizierter zu machen, dafür aber den Zufallsfaktor wieder rein zu bringen, kannst du auch folgendes tun:

Du bildest die Differenz des größten und des kleinsten "zuletzt erschienen"-Datums und bekommst die Anzahl der Sekunden. Diese multiplizierst du mit rand()*rand()*rand(). Das Ergebnis (in Sekunden) addierst du zum kleinsten Datum (ältestes Bild). Dieses Datum nutzt du dann, um das Bild abzufragen, dass gerade noch gleich alt oder älter ist (LIMIT 1).

Durch die kubische Gewichtung werden mit wesentlich größerer Häufigkeit alte Bilder verwendet.

Gruß,

Anja
Mit Zitat antworten
  #7 (permalink)  
Alt 24-08-2009, 13:42
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Zitat:
Zitat von melaoueh Beitrag anzeigen
*oder ich speicher in eien Spalte der Datum der letztes erscheinen. Die neue Bilder bekomen dann ein altes Datum damit die als erstes auftauchen. Damit verliert man halt den zufall faktor, was mir persönlich nicht gefällt. muss aber mein Chef enscheiden.
Dein Chef hatte das bereits entschieden, zumindest hast du das im ersten Beitrag behauptet:
Zitat:
Nun wil mein Chef das die zuletzt hingefügte Spiele als erstes auftauchen und nciht mehr Zufällig. DH:
Besucher1 will spielen wird der letztes hingefügtes objekt geladen
Besucher2 bekomtm das voletztes hingefügtes Objekt.
Besucher3 das Objekt davor.
etc...
Sollen alle Bilde durschgespielt werden, wir dvon vorne angefangen.
Das ist eine klare Anforderung und sie enthält keinerlei Zufall. Ob dir das persönlich nun gefällt oder nicht, ist wohl irrelevant.
Mit Zitat antworten
  #8 (permalink)  
Alt 24-08-2009, 15:21
melaoueh
 Registrierter Benutzer
Links : Onlinestatus : melaoueh ist offline
Registriert seit: Aug 2009
Beiträge: 5
melaoueh befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von AmicaNoctis Beitrag anzeigen
...
Danke, klingt gut und interessant. Muss ich mal ausprobieren.


Zitat:
Zitat von onemorenerd Beitrag anzeigen
Das ist eine klare Anforderung und sie enthält keinerlei Zufall. Ob dir das persönlich nun gefällt oder nicht, ist wohl irrelevant.
jein. So klar war die Anforderung nicht, man will halt das die zu letzt hingefügte Bilder ein bessere Chance haben aufzutauchen (weil die schön Neu sind und interessant)

Bilder werden für Spiele verwendet: Puzzle,..


Grüsse und Danke

Benjamin
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
datenbank, php, priorisierung, spiel, sql


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

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

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