php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.01.2012, 19:12  
Erfahrener Benutzer
 
Benutzerbild von Sickone4
 
Registriert seit: 21.08.2011
Beiträge: 302
PHP-Kenntnisse:
Anfänger
Sickone4 befindet sich auf einem aufstrebenden Ast
Standard

das ist garnicht so einfach das zu verstehen.... hab gerade lange in nem informatikforum gelesen...

also es geht quasi immer nur um den gleichen ganzzahligen teiler.

irgendwie confusing^^ ich glaub ich bin da heute schon zu langed ran^^
__________________
irgendwann werde ich auch helfen können - vielleicht.
Sickone4 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 03.01.2012, 19:16  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich schlage vor, Du mistest mal Deine Sprache aus und schreibst vollständige, grammatikalisch korrekte und verständliche Sätze. Und dann nimm am besten mal ein Blatt Papier, schreibn die Zahlen 1 bis 60 untereinander und berechne daneben für jede Zahl den Modulo-Wert (den Rest bspw. der Ganzzahldivision durch 5).
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 03.01.2012, 19:29  
Erfahrener Benutzer
 
Benutzerbild von Sickone4
 
Registriert seit: 21.08.2011
Beiträge: 302
PHP-Kenntnisse:
Anfänger
Sickone4 befindet sich auf einem aufstrebenden Ast
Standard

hehe. ja das problem ist nicht herauszufinden wie die ergebnisse bei 60 sind sondern

der wert 60 variiert ja. der kann mal 70 mal 50 oder so sein, das steht nicht fest und anhand dessen möchte ich eine "angenehme" anzahl an horizontalen linien haben und nicht sagen wir 8 oder 9 linien. das wären bei 175px alle 21 px ne linie das sieht ja schlimm aus, zudem passt meine beschriftung dann nimmer so dass es gut aussieht.

worum es da geht sieht man hier:

http://visual-design.biz/spd/gd-test1.php

dort habe ich aktuell hardcoded die horizontalen linien ( 0/5/10/15/20/25 ) drin
und der neuste wert ist nichtmehr im bild. das ist der wert 51.
laut meinem script ist die obergrenze meiner grafik nun 60 und die untergrenze gleichgeblieben bei 0

also horinzontale linien von ( 0/......../60)

die anzahl dazwischen ist nun wichtig. denn ich will als achs-skalierung nur zahlen stehen haben, die durch 5 teilbar sind.
hier wären das die werte 15/30/34 <- also nur 3 linien, die eingetragen würden. und genau um diese funktion geht es mir.

der max-wert wurde bestimmt, erhöht auf $skalaMax.
$skalaMin ist fest bei 0.

die dazwischenliegen horizontalen linien sollen (inklusive min und max) zwischen 3 und 7 liegen. mehr linien würden das diagramm unübersichtlich machen.
__________________
irgendwann werde ich auch helfen können - vielleicht.
Sickone4 ist offline   Mit Zitat antworten
Alt 03.01.2012, 20:31  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
die anzahl dazwischen ist nun wichtig. denn ich will als achs-skalierung nur zahlen stehen haben, die durch 5 teilbar sind.
Ja, dann ist der ganze Aufriss umsonst, denn das ist nichts anderes, wie das:
PHP-Code:
for( $counter=0$counter<=$max$counter+=) {
    echo 
$counter ';';

Ausgabe für $max=60, wen wunderts:
Code:
0;5;10;15;20;25;30;35;40;45;50;55;60
Du hast vorhin noch gesagt, daß Du zwischen 0 und $max 5 Schritte haben willst, das ist was anderes...

EDIT
Eigentlich brauchst Du dazu nicht mal for:
PHP-Code:
$footSteps range0$max);
echo 
implode';'$footSteps ); 
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein

Geändert von Arne Drews (03.01.2012 um 20:34 Uhr).
Arne Drews ist offline   Mit Zitat antworten
Alt 03.01.2012, 22:01  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Mach es doch so:

- Du definierst eine feste Anzahl Linien die auf deiner Grafik "gut" aussehen, meinetwegen 5, weil sich 175/5 gut teilen lässt, das wäre dann alle 35 Pixel eine Linie

- Dein Max Wert auf der Y-Achse variiert. Problem ist das die Teilung durch 5 immer ungerade Zahlen ergibt. Das kannst du lösen indem du deinen Max Wert immer auf einen vollen 5er Schritt aufstockst

73 => 75
61 => 65
54 => 55
etc...

Das erreichst du so: Wenn Max Modulo 5 > 0 Dann Max = Max+(5-(Max%5))

Erläuterung: Max%5 gibt dir den Rest der Division aus, also genau soviel wie über dem aktuellem 5er Schritt liegt. Das heit 5 - den Devisionsrest ergibt das, was zum nächsten 5er Schritt fehlt, und das rechnest du auf den Max Wert drauf.

- Gleiches gilt für deine Datenbankwerte. Die stockst du ebenfalls auf den nächsten 5er nach oben angegebener Formel auf.

- Die Y Koordinate eines Punktes ergibt sich dann aus den Pixeln pro Punktwert (Bildhöhe durch Maxwert) mulipliziert mit dem Wert des Punktes

Dann solltest du doch alles problemlos skalieren und zeichnen können.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 04.01.2012, 09:18  
Erfahrener Benutzer
 
Benutzerbild von Sickone4
 
Registriert seit: 21.08.2011
Beiträge: 302
PHP-Kenntnisse:
Anfänger
Sickone4 befindet sich auf einem aufstrebenden Ast
Standard

@Dark Guardian: ich verstehe nicht ganz warum ich meine Werte in der DB verändern soll?

wenn heute 17 neue aufrufe gezählt wurden, warum die zahl dann auf 20 erhöhen? so macht meine grafik doch keinen sinn?


@Arne: SO sieht mein code aus:

PHP-Code:
$skalaMax  $datensatz['max'] + (10-($datensatz['max']%10));

$schrittWeite 15;

$skala range0$skalaMax$schrittWeite );
echo 
implode';'$skala); 
$skalaMax ist somit immer ein durch 10 teilbarer wert.

die schrittweite habe ich nun manuell auf 15 gesetzt.
dort muss nun eine rechenoperation hin, die als
ergebnis einen wert liefert, der:

$skalaMax dividiert durch (3, 4, 5, 6 oder 7) ein ergebnis liefert, welches entweder ne 5 oder ne 0 am ende hat.

und da kommt laut den seiten die ich gestern gelesen habe nochmal das modulo zum einsatz.

doch mache ich da sowas hin wie $skalaMax%5 dann bekomm ich ne fehlermeldung, die mir die befehle "range() & implode()" als fehlerhaft ausgibt.


EDIT

mit 3-7 bekommt man eig immer nen guten wert.

wobei hier erwähnt sein will, dass dividiert durch 3 nur eine linie IM diagramm darstellt.
linie 1 = 0 linie,
linie 2 = Schrittweite,
linie 3 = $skalamax

gleiches gilt für 4-7
__________________
irgendwann werde ich auch helfen können - vielleicht.

Geändert von Sickone4 (04.01.2012 um 09:49 Uhr).
Sickone4 ist offline   Mit Zitat antworten
Alt 04.01.2012, 10:09  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

<Ot>manmanman ... 7 Seiten und du hast dein Problem immer noch nicht klar und allgemeinverständlich beschrieben - wahrscheinlich hättest du es damit dann selbst ratz fatz gelöst ...</OT>
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 04.01.2012, 11:06  
Erfahrener Benutzer
 
Benutzerbild von Sickone4
 
Registriert seit: 21.08.2011
Beiträge: 302
PHP-Kenntnisse:
Anfänger
Sickone4 befindet sich auf einem aufstrebenden Ast
Standard

<OT>hm. ich finde das eigentlich super, dass ich weiter in dem thema geblieben bin und nicht nur weil sich im thread das thema geändert hat nen neuen thread aufgemacht habe....

so können doch die die sich damit beschäftigt haben weiter damit beschäftigen und im forum sind nicht zig neue threads.

oder ist das schlecht?
__________________
irgendwann werde ich auch helfen können - vielleicht.
Sickone4 ist offline   Mit Zitat antworten
Alt 04.01.2012, 11:33  
Erfahrener Benutzer
 
Registriert seit: 24.10.2008
Beiträge: 298
PHP-Kenntnisse:
Fortgeschritten
KarlEgon befindet sich auf einem aufstrebenden Ast
Standard

Es geht ja nicht darum, dass du kein neues Thema aufgemacht hast, sondern darum, dass du dein Problem nicht ordentlich beschreiben kannst
KarlEgon ist offline   Mit Zitat antworten
Alt 04.01.2012, 11:50  
Erfahrener Benutzer
 
Benutzerbild von Sickone4
 
Registriert seit: 21.08.2011
Beiträge: 302
PHP-Kenntnisse:
Anfänger
Sickone4 befindet sich auf einem aufstrebenden Ast
Standard

ok ich geb mir mühe zu erklären was ich will:



Auf der Grafik ist schän zu erkennen, dass es eine Grundlinie (unterer rahmen = 0) und eine max linie (oberer rahmen = 25) gibt.

dazwischen die linien sind in 5er schritten.

wenn nun z.b. an einem tag aber 51 leute meine seite besuchen, dann
stimmt

a) die skalierung nichtmehr
b) ist der wert außerhalb meiner grafik:



also möchte ich, dass anhand des max-wertes die skalierung neu berechnet wird, aber am rand immer ein wert steht der durch 5 teilbar ist.

im beispiel mit dem wert 51, so wird durch

PHP-Code:
$skalaMax  $datensatz['max'] + (10-($datensatz['max']%10)); 
mein wert 51 auf ein skalamax von 60 gesetzt.

nun kann man rechnen:

60/3 = 20 <== bedeutet, dass ich eine skalierung von 20 habe, also 0,20,40,60
60/4 = 15 <== bedeutet, dass ich eine skalierung von 15 habe, also 0,15,30,45,60
60/5 = 12 <== wert hat keine 5 oder 0 am ende fällt also raus
60/6 = 10 <== skalierung 0,10,20,30,40,50,60 fällt auch raus, weil es zu viele linien sind.
60/7 = 8,..<== gebrochener Wert fällt auch raus.

was bedeutet das: die skala kann die schrittweite 20 aufweisen 15 oder 10 (wobei 10 aufgrund der anzahl an linen rausfällt)

mein gedanke ist also:

teile die zahl $max durch die werte x,y,.... kommt ein ergebnis heraus, welches eine 0 oder 5 am ende hat, so prüfe, wieviele (count) ergebnisse geliefert werden, ist die anzahl an ergebnissen größer als 5, so berechne erneut.

so lange, bis eine gescheite anzahl gefunden wurde.

war das verständlich?
__________________
irgendwann werde ich auch helfen können - vielleicht.
Sickone4 ist offline   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
Select join mit kategorieausgabe Frage Sickone4 PHP Einsteiger 31 25.11.2011 15:11
msql select wenn bedingung / variable zutrifft knuffiwuffi Datenbanken 7 24.11.2011 01:38
Auf bestimmte Array Variable in SELECT anweisung zugreifen h.humpol Datenbanken 2 21.08.2011 12:51
MySQL-Problem: Select SvenLittkowski Datenbanken 13 09.05.2011 13:51
SELECT in SELECT oder elegantere Lösung möglich? sunny Datenbanken 12 03.05.2011 16:32
[Erledigt] COUNT und MAX in 1 SELECT coola Datenbanken 2 07.12.2010 22:12
[Erledigt] Intertabellarische Berechnungen, wie? dave303 Datenbanken 13 05.03.2010 11:58
Ausgabe erfolgt nicht Extremefall PHP Tipps 2009 17 17.12.2009 19:51
[Erledigt] Kein Ergebnis bei SELECT (MySQL 4.1.9) dr.e. Datenbanken 4 15.06.2008 19:54
[Erledigt] Mysql Insert Select + Concat Hu5eL Datenbanken 14 10.06.2008 10:39
SELECT Frage obi Datenbanken 7 20.09.2006 09:18
[JavaScript] Event Handler in form select - Syntax? winfo_cologne HTML, Usability und Barrierefreiheit 5 29.03.2006 16:47
[Erledigt] frage zu select statement Datenbanken 4 21.12.2004 10:29
[Erledigt] 2 mal select 1 form PHP-Fortgeschrittene 1 01.09.2004 20:13
selektierter wert in select box anzeigen PHP Tipps 2004 6 30.08.2004 13:49


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:48 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