php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.05.2005, 23:46  
Gast
 
Beiträge: n/a
Standard max,min,mittelwert und andere

PHP-Code:
<?php
.......
$result=mysql_query("Select ps.*, p.* FROM
 project_spec ps, project p WHERE 
ps.country='$country' and ps.icd_id
='$icd_id' and ps.speciality_id=
'$speciality_id' and ps.project_id
=p.project_id"
);

while (
$inhalt=mysql_fetch_array($result)){

$index2 htmlspecialchars($inhalt[$index]); 
//$index Feldname $index2 Werte von $index
.....
?>
So jetzt erhalte ich zum Beispiel 2DS
indexwert 5070, entsteht aus 50 und 70
also ist $index2 5070

Jetzt brauche ich folgende Berechnung

max wert $max- - - ich hatte es so probiert
max($index2) - geht nicht
min wert $min
mittelwert $avg
als nächste Berechnung $t10avg, ist
von allen DS die besten 10% raussuchen,
also von 1000DS - 100raussuchen,
zusammenaddieren und durch die Anzahl
(100) teilen (Bespiel 100DS, die besten 10
raussuchen, die Werte zusammenrechnen,
also z.B. 3+4+5+6+7+8+9+10+11+12+13
und dann durch 10 teilen ist $t10avg.

Kann mir jemand bei den 4 Berechnungen helfen ?
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.06.2005, 00:50  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php
$values
[] = $index2;


                                
asort($values);
                                
$t10vals $values;
                                
$t10i ceil($i 0.3);
                                
$t10sum 0;
                                for(
$j 0$j <= $t10i$j++){
                                        
$t10sum += $t10vals[$j];
                                }
                                
$t10avg = ($t10sum $t10i);

?>
Habe jetzt $index2 in ein Array gepackt, jetzt kommt bei 2DS, z.B. 50und70 / 5070, 120 raus, obwohl nur 70 rauskommen muß, weil von 2DS, 10% nur ein DS am höchsten ist, nämlich der mit 70 !!
 
Alt 01.06.2005, 01:16  
Gast
 
Beiträge: n/a
Standard

Hallo,

also $index2 setzt sich zusammen aus allen Zahlen die $index
hat. Steht z.B. im DS1 in $index30, im DS2 in $index900, im DS3 in $index 3 drinne, dann ist $index2 309003.

Jetzt soll mir die 10% besten DS, also wenn ich 1000DS habe, die 100besten
rausgesucht werden, zusammengerechnet und durch die Anzahl, hier 100, geteilt werden.

$max ich brauche den höchsten Wert von $index2
$min ich brauche den kleinsten Wert von $index
$avg ich brauche alle Werte geteilt durch die Anzahl
 
Alt 01.06.2005, 01:34  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

:P so
wäre es mal möglich dass du den create-befehl für beide tabellen postest und beispielinhalte für die tabelle in form eines inserts? dass man das ganze lokal testen kann ,weil ich momentan mit dem ganzen nix anfangen kann und nciht weis was da wie wo rauskommt ...

und halt nen quelltext der soweit angepasst ist, dass man ihn lokal testen kann.
aber wirst bis morgen warten müssen, weil ich geh jetzt erstmal pennen, muss in 4 1/2 stunden schon wieder raus
bin dann ab so 8:20 wieder hier aufm forum :P wenn dir nicht schon vorher jemadn geholfen hat.


mfg
robo47
robo47 ist offline  
Alt 01.06.2005, 02:00  
Gast
 
Beiträge: n/a
Standard

Also in meiner tbl. project_spec gibt es Felder wie ind_uaw, ind_paw.

Von der Seite vorher kann der User auswählen was er sich anzeigen lassen möchte, entweder ind_uaw oder ind_paw.

Jetzt wählt er ind_uaw aus.

Jetzt wird auf der nächsten Seite eine Abfrage gemacht:

PHP-Code:
<?php
$result
=mysql_query("Select ps.*, p.* FROM
 project_spec ps, project p WHERE 
ps.country='$country' and ps.icd_id='$icd_id' 
and ps.speciality_id='$speciality_id' and 
ps.project_id=p.project_id"
);
?>
Jetzt werden mir die Werte ausgegeben, die wenn ind_uaw($index) ausgewählt wurde, angezeigt, als $index2.

Wenn ich 2DS habe - - ->ind_uaw als $index(Feldname) und als Werte habe ich 90 und 80($index2).

Jetzt sollen mir die besten 10% ($index2) angezeigt werden, zusammengerechnet werden und durch die Anzahl (mysql_num_rows() ) geteilt werden.
 
Alt 01.06.2005, 02:34  
Gast
 
Beiträge: n/a
Standard

Also nochmal: $index ist der Feldname
$index2 ist der Inhalt von $index

Jetzt erhalte ich auf meine Abfrage (s.o.) 100Datensätze. Jetzt brauche ich die 10% besten Datensätze (also das wo der $index2 am höchsten ist).

Also brauche ich erstmal nur die 10, oder 100 (bei 1000DS) usw. höchsten Werte.

Jetzt habe ich 10 $index2 Werte.
10,20,30,40,50,60,70,80,90,100 also ist $index2=102030405060708090100.
Jetzt komme $index2 in ein Array.

Jetzt müssen die Werte in dem Array summiert werden, also 10+20+30usw...
Dann erhalte ich einen Wert, dieser Wert wird wieder durch die Anzahl, hier 10 geteilt und das ist mein Wert $t10avg.

Also es können 10,30,60,59,47 etc, Datensätze, brauche aber nur die 10% besten.
Ich hoffe diese Info genügt.
 
Alt 01.06.2005, 03:48  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von entw23
Ich hoffe diese Info genügt.
Nein, so lange Du das nicht lieferst:
Zitat:
Zitat von robo47
wäre es mal möglich dass du den create-befehl für beide tabellen postest und beispielinhalte für die tabelle in form eines inserts?
 
Alt 01.06.2005, 09:38  
Gast
 
Beiträge: n/a
Standard

Seite1:
User wählt aus, was er auf Seite für Werte angezeigt haben moechte.

PHP-Code:
<?php
echo "<select size=\"20\" name=\"index\" class=\"listen\">";
                      
$result mysql_query("SHOW COLUMNS FROM project_spec like '%ind%'");

$result2 mysql_query("Select * from project_spec WHERE country='$country' and icd_id='$icd_id' and speciality_id='$speciality_id'");
                      
$row2 mysql_fetch_array($result2);
                      
$num mysql_num_rows($result);
                      if (
$num != 0)
                      {
                        while (
$row mysql_fetch_array($result))
                        {
                        
$anzeige "";
                                                                                                  if (
$row['Field']== "ind_uaw") {
                                                                                                          
$anzeige "Unprompted Awareness";
                                                                                                  } else if (
$row['Field']== "ind_paw") {
                                                                                                          
$anzeige "Prompted Awareness";
                                                                                                  }

                        echo
"<option value='$row[Field]'>$anzeige</option>";

?>
Seite2 - Nachdem User seinen Index auf Seite 1 ausgewählt hat, werden ihm dazu alle Werte angezeigt.

PHP-Code:
<?php
$array 
$index;
              if (
$array == 'ind_uaw') {
              
$ausgabe "Unprompted Awareness";
              } elseif (
$array == 'ind_paw') {
              
$ausgabe "Prompted Awareness";
              }

?>
Hier ist die tbl.project_spec, also das create.

PHP-Code:
<?php
CREATE TABLE 
`project_spec` (
  `
project_spec_idint(11NOT NULL auto_increment,
  `
project_idint(11NOT NULL default '0',
  `
countrychar(2NOT NULL default '',
  `
speciality_idint(11NOT NULL default '0',
  `
brand_idint(11NOT NULL default '0',
  `
icd_idint(11NOT NULL default '0',
  `
waveint(11NOT NULL default '0',
  `
baseint(11NOT NULL default '0',
  `
create_timevarchar(5NOT NULL default '0',
  `
ind_uawint(11NOT NULL default '0',
  `
ind_pawint(11NOT NULL default '0',
  
PRIMARY KEY  (`project_spec_id`)
TYPE=MyISAM AUTO_INCREMENT=13 ;

?>
PHP-Code:
<?php
INSERT INTO 
`project_spec` ( `project_spec_id` , `project_id` , `country` , `speciality_id` , `brand_id` , `icd_id` , `wave` , `base` , `create_time` , `ind_uaw` , `ind_paw` ) 
VALUES (
'''10''cz''6''3''3''3''6''10/04''200''150'
);


?>
So, also $index ist mein Feldname - wird übergeben von Seite1 in der Auswahlliste.
$index2 ist der Inhalt von dem Feld.
 
Alt 01.06.2005, 09:47  
Gast
 
Beiträge: n/a
Standard

Sag' mal, "steinerxxx". In wievielen Foren mit unterschiedlichen Nicknames stellst du deine Fragen. Findest du das OK, dass du 'zig Leute in unterschiedlichen Foren mit deinem Problem beschäftigst und nicht mal darauf hinweist?

Gruß
phpfan
 
Alt 01.06.2005, 09:54  
Gast
 
Beiträge: n/a
Standard

Ja, hab gestern schon berechtigen Anschiss bekommen, tut mir Leid.
Hab es nur des Stress wegen gemacht, will niemand zu nahe treten, aber leider konnte mir in den anderen Foren nicht wirklich geholfen werden
 
 


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
[Erledigt] Andere Möglichkeit für stristr $before_needle citric acid PHP Tipps 2008 3 26.06.2008 01:10
datenbank auf andere kopieren geht nicht! Kevin Datenbanken 1 18.08.2007 23:20
Benutzt ihr PEAR oder andere proffesionelle Bibliotheken? Matthiasnet Off-Topic Diskussionen 3 03.08.2007 23:03
Andere Lösung für verschachtelte Mysql Anfrage Goschy PHP Tipps 2007 8 27.03.2007 21:47
Variable in eine andere PHP-Datei übertragen mark_gebert PHP Tipps 2006 7 23.09.2006 19:33
Via PHP auf eine andere festplatte zugreifen? skytrance PHP Tipps 2006 6 05.05.2006 16:23
?id= und andere Parameter Beitragsarchiv 10 12.04.2006 09:43
[JS] Checkbox setzt andere checkboxen auf checked phpfortgeschrittener HTML, Usability und Barrierefreiheit 2 13.03.2006 17:30
Umleiten auf andere Seite PHP Tipps 2005-2 4 24.09.2005 19:12
auf Mysql Datenbank Zeichen ersetzen durch andere ??? Tango Beitragsarchiv 1 01.08.2005 01:48
auf Mysql Datenbank Zeichen ersetzen durch andere ??? Tango PHP Tipps 2005-2 0 31.07.2005 20:14
Subdomains an andere Vergeben themonk Off-Topic Diskussionen 11 28.05.2005 14:14
Bilder generieren / andere Schriftart Ohrwurm83 PHP Tipps 2004-2 1 29.11.2004 15:37
[HILFE] Datenbank Inhalt fuer andere Webseiten !?! PHP Tipps 2004-2 3 05.11.2004 17:34
Ausgabe einer Datei in andere schreiben? Unbekanntes_Pferd PHP Tipps 2004 1 07.10.2004 12:16

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
= (max-min) / mittelwert

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