php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.12.2005, 19:37  
Gast
 
Beiträge: n/a
Standard [Erledigt] Minimum aus Datensätzen extrahieren

Guten Tag allerseits,

ich stehe hier vor einem ziemlich (zumindest für mich) schwerwiegenden php-Problem.
Erstmal folgendes Szenario zur Veranschaulichung.
Ich habe Ein SQL-DB mit mehreren Artikeln und Preisen pro Minute dazu.
Grundsätzlich möchte ich berechnen welcher Artikel für den User am billigsten ist, je nach dem wieviele Minuten er die Artikel nutzt. Die Artikel unterscheiden sich also in den Minutenpreisen und in der Grundgebühr.
Der User kann schätzen wieviele Minuten er verbrauchen wird und auf Basis dessen soll der günstigste Artikel ausgegeben werden.
So weit so gut. Die Datenbankabfrage ist kein Problem, das Problem ist, wie ich die Preise vergleiche, denn die letzendlichen Minutenpreise stehen ja nicht in der Datenbank, sondern werden erst im php-skript auf Basis der Usereingabe berechnet.
Quasi müsste ich für jeden Artikel eine Preisberechnung durchführen und diese dann irgendwo speichern, bis alle Artikel berechnet sind. Danach dann die Preise der Artikel vergleichen, um dann den günstigsten herauszubekommen.

Ich habe schon mit while() und foreach() Schleifen rumprobiert, aber das wird alles nix.
Die einzige Option, die mir noch einfällt ist, für jeden Artikel der Datenbank die Berechnung durchzuführen und in einer anderen Variable zu speichern. Aber das bläht das Skript riesig auf, es müsste doch auch irgendwie einfacher gehen?!?
Irgendwelche Ideen?
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.12.2005, 20:28  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Versuchs mal mit:
SELECT Anbieter, (minutenpreis*$minuten+grundgebuhr) AS Preis FROM tabelle ORDER BY (minutenpreis*$minuten+grundgebuhr)
__________________
Today you...Tomorrow me.
agrajag ist offline   Mit Zitat antworten
Alt 21.12.2005, 20:55  
Gast
 
Beiträge: n/a
Standard

wow ich bin ja gebeistert! Obwohl ich einige mehr Konditionen hab, da zu verschiedenen Preisen verschiedene Zeiten gelten klappt das trotzdem.

Vielen Dank!
  Mit Zitat antworten
Alt 22.12.2005, 08:41  
Gast
 
Beiträge: n/a
Standard zu früh gefreut

hm...schade leider klappt es nicht so ganz, weil ich folgendes nicht bedacht habe:
Es gibt Angebote mit Inklusivminuten für die man einen Festpreis zahlt. Also zum Beispiel 50 Minuten für 25 Euro.
Für die Angebote ohne Inklusivminuten berechnet das obige Beispiel alles richtig, aber soblad diese Angebote mit Inklusivminuten ins Spiel kommen geht alles schief. Denn: Ich muss irgendwie herausfinden, ob der User mit den Inklusivminuten besser fährt oder nicht, Das kann ich aber erst im php-Code unterhalb der SQL Abfrage, aber dann ist ja die Abfrage schon gelaufen und schon einsortiert, was bedeutet, dass das was ich da unten berechne erst in der nächsten Schleife wirksam wird. Und da kann ich es nicht brauchen.
Die Abfragen werden praktisch mit Daten des vorhergien Datensatzes durchgeführt. Und dann stimmt natürlich die Rechnung nicht mehr.
Irgendwelche Ideen???
  Mit Zitat antworten
Alt 22.12.2005, 09:21  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Die Inklusivminuten werden doch sicherlich auch in der Datenbank gespeichert, oder? Dann subtrahiere diese erst einmal von $minuten und berechne nur für das Ergebnis die Gebühr.
xabbuh ist offline   Mit Zitat antworten
Alt 22.12.2005, 09:34  
Gast
 
Beiträge: n/a
Standard

ja die Inklusivminuten sind gespeichert:
Problem dabei anhand eines Beispiels:
($Inklusivminuten - $minuten)*preis
(100-50)*0,50 --> 25
das ist okay, da kommt was gescheites raus, aber
(200-300)*0,50 --> -50

Folge: Das Modell mit den 200 Inklusivminuten wird an den Anfang gesetzt, obwohl es gar nicht das billigste ist!
Das eigentliche Problem sind die Vorzeichen, bei version 2 müsste +50 rauskommen, dann wäre das ok.
Geht ja aber nicht!
  Mit Zitat antworten
Alt 22.12.2005, 10:08  
Benutzer
 
Registriert seit: 10.09.2005
Beiträge: 67
N!cKY
N!cKY eine Nachricht über ICQ schicken
Standard

kannst dir per abs() positiv machen lassen
__________________

eagleScripts.de
N!cKY ist offline   Mit Zitat antworten
Alt 22.12.2005, 11:00  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von N!cKY
kannst dir per abs() positiv machen lassen
Klar, so werden meine offnen Rechnungen flugs zu Guthaben
Versuch mal folgendes
Code:
SELECT Anbieter, 
      (if(minutenpreis * $minuten) > inklusivminuten,
          inklusivminuten,
          (minutenpreis * $minuten)
      ) 
      + grundgebuhr AS preis 
FROM tabelle 
ORDER BY preis
Ungetestet!
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 22.12.2005, 13:54  
Gast
 
Beiträge: n/a
Standard

ah das sieht besser aus!!
Ich wusste nicht, dass ich in der MYSQL Syntax if's benutzen kann.
Denn anders geht es nicht, weil: Ich muss zwingend zwischen Angboten mit und ohne Inklusivminuten unterscheiden!
Sonst verfälscht sich die Rechnung bei den Angeboten, die keine Inklusivminuten haben.
Ich versuche das mal ....!

DANKE!
  Mit Zitat antworten
Alt 23.12.2005, 08:02  
Gast
 
Beiträge: n/a
Standard

ok, also das ganze wird nix. Ich werde mal im MYSQL Forum den Code der Abfrage posten.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP/MySQL: Queries aus SQL-Dateien extrahieren Zergling-new Tutorials 0 29.07.2007 15:34
Keywords extrahieren PHP Tipps 2007 3 13.12.2006 17:55
E-MAILs aus Text extrahieren sponer PHP Tipps 2006 13 16.05.2006 18:09
Teile von Strings extrahieren seven-12 PHP Tipps 2006 13 19.04.2006 18:22
Extrahieren aus 2 Tables mit einem bekannten Wert ssm Datenbanken 12 23.03.2006 20:29
pdf_set_info --> Daten wieder extrahieren PHP-Fortgeschrittene 1 14.01.2006 18:07
Das praktikable Minimum? Off-Topic Diskussionen 5 02.09.2005 13:49
Strings extrahieren PHP Tipps 2005-2 11 19.07.2005 09:11
Daten aus Text auslesen und in Variablen extrahieren PHP Tipps 2005-2 12 10.06.2005 08:05
werte aus string extrahieren PHP Tipps 2005 1 09.04.2005 15:50
[Erledigt] suche hilfe: html-body extrahieren und urls kürzen! PHP-Fortgeschrittene 9 07.03.2005 14:58
Angaben aus Zeichenkette extrahieren & an Vari. übergebe zwelch PHP Tipps 2005 17 21.01.2005 07:35
SMS-Empfang => Nummer aus Message extrahieren pixelcut PHP-Fortgeschrittene 1 26.11.2004 16:28
{$varname.optelement} mit preg_match aus HTML extrahieren PHP Tipps 2004 0 11.09.2004 04:13
text aus pdf Datei extrahieren PHP-Fortgeschrittene 2 20.08.2004 10:44

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php minimum aus datenbank berechnen, http://www.php.de/php-fortgeschrittene/35071-erledigt-minimum-aus-datensaetzen-extrahieren.html

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.