php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.07.2010, 14:04  
Benutzer
 
Registriert seit: 06.12.2007
Beiträge: 31
Commu befindet sich auf einem aufstrebenden Ast
Standard for-schleife für Variabelle

Und noch mal Hallo Zusammen,

neues Thema

ich habe als vorlage eine Tabelle mit 122 Spalten.
in den Spalten lassen sich 4 mal 17 Spalten zu einer Gruppe zusammen fassen.

sb_0_bereich
sb_0_prozent
sb_0_min_beitrag
sb_0_1 bis sb_0_7
sb_0_min_1 bis sb_0_min_7
sb_0_max_1 bis sb_0_max_7

diese Spalten gibt es weiter für

sb_125.... , sb_250..... , sb_500....

auf Grund von Formular bedingungen wird nur der sb_0... oder sb_125 oder
angezeigt.

die Spaltenzähler 1 bis 7 wollte ich per for-schleife anzeigen lassen.

PHP-Code:
if ($sb_bereich == "leistung") {
                  
for(
$co 1$co <= 7$co++) {

   
$va "$";
   
$sb $va."sb_".$co;
   
$sb_min $va."sb_min_".$co
   
$sb_max $va."sb_max_".$co;

   if (
$sb_min $lst && $sb_max $lst) {
     if (
$sb_$co 50) {
      
$ergebniss $sb;
    } else {
     
$ergebniss $lp 1000 $sb;
    }
   }

// for


wie kann ich die spalten min_1 und max_1 und 1 zusammen per for-Schleife zusammenfassen?

Gruß Jörg
Commu ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 30.07.2010, 14:45  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Kannst du bitte nochmal etwas detaillierter schreiben, was du machen möchtest?
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 30.07.2010, 14:53  
Erfahrener Benutzer
 
Registriert seit: 19.05.2008
Beiträge: 612
PHP-Kenntnisse:
Fortgeschritten
Young Jedi befindet sich auf einem aufstrebenden Ast
Standard

[quote=Commu;530990]
PHP-Code:
   $sb_min $va."sb_min_".$co
   
$sb_max $va."sb_max_".$co;

   if (
$sb_min $lst && $sb_max $lst) {
     if (
$sb_$co 50) {
      
$ergebniss $sb;
    } else {
     
$ergebniss $lp 1000 $sb;
    }
   }

// for


Das versteh ich nicht. $sb_min hat doch z.B. den Wert "$sb_min_1" und $sb den Wert "$sb_1". Wie kann man denn das vergleichen und weiterrechnen lassen?

Was genau hast du vor? Eine Tabelle mit 122 Spalten ist nach meiner Meinung schon so das falsche Datenbankdesign.
__________________
http://tippsgegenlangeweile.de

Young Jedi ist offline   Mit Zitat antworten
Alt 30.07.2010, 15:08  
Benutzer
 
Registriert seit: 06.12.2007
Beiträge: 31
Commu befindet sich auf einem aufstrebenden Ast
Standard tabelle-design

die tabelle wurde nicht von mir erstellt, und ist so noch in Benutzung

ich wollte einfach nur eine aus wertung machen.

Ursprünglich hatte ich die Auswertung so :

mein Ziel war es die 7 if-Abfragen durch eine 1 for-Schleife zu ersetzen.

PHP-Code:
                if ($sb_bereich == "leistung") {
                  if (
$sb_min_1 $lst && $sb_max_1 $lst) {
                    if (
$sb_1 50) {
                      
$ergebniss $sb_1;
                    } else {
                      
$ergebniss $lp 1000 $sb_1;
                    }
                    
$sb_db $sb_1;
                  }
                  if (
$sb_min_2 $lst && $sb_max_2 $lst) {
                    if (
$sb_2 50) {
                      
$ergebniss $sb_2;
                    } else {
                      
$ergebniss $lp 1000 $sb_2;
                    }
                  }
                  if (
$sb_min_3 $lst && $sb_max_3 $lst) {
                    if (
$sb_3 50) {
                      
$ergebniss $sb_3;
                    } else {
                      
$ergebniss $lp 1000 $sb_3;
                    }
                  }
                  if (
$sb_min_4 $lst && $sb_max_4 $lst) {
                    if (
$sb_4 50) {
                      
$ergebniss $sb_4;
                    } else {
                      
$ergebniss $lp 1000 $sb_4;
                    }
                  }
                  if (
$sb_min_5 $lst && $sb_max_5 $lst) {
                    if (
$sb_5 50) {
                      
$ergebniss $sb_5;
                    } else {
                      
$ergebniss $lp 1000 $sb_5;
                    }
                  }
                  if (
$sb_min_6 $lst && $sb_max_6 $lst) {
                    if (
$sb_6 50) {
                      
$ergebniss $sb_6;
                    } else {
                      
$ergebniss $lp 1000 $sb_6;
                    }
                  }
                  if (
$sb_min_7 $lst && $sb_max_7 $lst) {
                    if (
$sb_7 50) {
                      
$ergebniss $sb_7;
                    } else {
                      
$ergebniss $lp 1000 $sb_7;
                    }
                  }
                } 
Commu ist offline   Mit Zitat antworten
Alt 30.07.2010, 15:11  
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

Ja, ist ja auch immer die selbe Logik (was auch immer die tut). Also stell Dir bspw. ein Array mit $sb_min_n , $sb_max_n zusammen und durchlaufe das.

PS: Der Code ist furchtbar.
__________________
--
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 30.07.2010, 15:26  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Ah jetzt. Wie Nikosch sagt: Die Tabelle in Arrays umwandeln.

Also beispielsweise wie folgt. Ob die Struktur so passt kommt halt auf die Auswertung an.

Code:
array (
  0 => array (
     'bereich' = <Wert>, 
     'prozent' = <Wert>, 
     'min-beitrag' => <Wert>, 
     1 => array (
        'wert' => <Wert>, 
        'min' => <Wert>, 
        'max' => <Wert>
     ),
     ...
     7 => array (
        'wert' => <Wert>, 
        'min' => <Wert>, 
        'max' => <Wert>
     )
  ),
  125 =>  array (
     'bereich' = <Wert>, 
     'prozent' = <Wert>, 
     'min-beitrag' => <Wert>, 
     1 => array (
        'wert' => <Wert>, 
        'min' => <Wert>, 
        'max' => <Wert>
     ),
     ...
     7 => array (
        'wert' => <Wert>, 
        'min' => <Wert>, 
        'max' => <Wert>
     )
  )
)
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 30.07.2010, 15:27  
Benutzer
 
Registriert seit: 06.12.2007
Beiträge: 31
Commu befindet sich auf einem aufstrebenden Ast
Standard hatte ich versucht

wenn ich es wüste wie die Schlefe aus ehen soll???

wie weise ich der der sb_min_??? den zaähler zu?
Commu ist offline   Mit Zitat antworten
Alt 30.07.2010, 15:37  
Benutzer
 
Registriert seit: 06.12.2007
Beiträge: 31
Commu befindet sich auf einem aufstrebenden Ast
Standard array

ich als Leihe habe da meine schwierigkeiten,

es gibt 7 mal min und 7 mal max und 7 mal die werte Zuweisung für z.B. "0"

so hole ich die werte aus der tabelle
PHP-Code:
$sb $_POST["sb"]; // kann 0, 125, 250 und 500 sein

$sql "SELECT id,
                                               sb_"
.$sb."_bereich,
                                               sb_"
.$sb."_prozent,
                                               sb_"
.$sb."_min_beitrag,
                                               sb_"
.$sb."_1,
                                               sb_"
.$sb."_2,
                                               sb_"
.$sb."_3,
                                               sb_"
.$sb."_4,
                                               sb_"
.$sb."_5,
                                               sb_"
.$sb."_6,
                                               sb_"
.$sb."_7,
                                               sb_"
.$sb."_min_1,
                                               sb_"
.$sb."_max_2,
                                               sb_"
.$sb."_min_2,
                                               sb_"
.$sb."_max_2,
                                               sb_"
.$sb."_min_3,
                                               sb_"
.$sb."_max_3,
                                               sb_"
.$sb."_min_4,
                                               sb_"
.$sb."_max_4,
                                               sb_"
.$sb."_min_5,
                                               sb_"
.$sb."_max_5,
                                               sb_"
.$sb."_min_6,
                                               sb_"
.$sb."_max_6,
                                               sb_"
.$sb."_min_7,
                                               sb_"
.$sb."_max_7
                                          FROM tbl_tabelle
                                         WHERE vers_id = $vers_id"
;
                
$erg mysql_query($sql);
                while (
$row mysql_fetch_row($erg)) {
                  
$sb_bereich $row[1];
                  
$sb_prozent $row[2];
                  
$sb_min_beitrag $row[3];
                  
$sb_1 $row[4];
                  
$sb_2 $row[5];
                  
$sb_3 $row[6];
                  
$sb_4 $row[7];
                  
$sb_5 $row[8];
                  
$sb_6 $row[9];
                  
$sb_7 $row[10];
                  
$sb_min_1 $row[11];
                  
$sb_max_2 $row[12];
                  
$sb_min_2 $row[13];
                  
$sb_max_2 $row[14];
                  
$sb_min_3 $row[15];
                  
$sb_max_3 $row[16];
                  
$sb_min_4 $row[17];
                  
$sb_max_4 $row[18];
                  
$sb_min_5 $row[19];
                  
$sb_max_5 $row[20];
                  
$sb_min_6 $row[21];
                  
$sb_max_6 $row[22];
                  
$sb_min_7 $row[23];
                  
$sb_max_7 $row[24];
                if (
$sb_bereich == "leistung") {
                  if (
$sb_min_1 $lst && $sb_max_1 $lst) {
                    if (
$sb_1 50) {
                      
$ergebniss $sb_1;
                    } else {
.......



Geändert von Commu (30.07.2010 um 15:52 Uhr).
Commu ist offline   Mit Zitat antworten
Alt 30.07.2010, 15:44  
Erfahrener Benutzer
 
Registriert seit: 02.09.2009
Beiträge: 1.019
PHP-Kenntnisse:
Fortgeschritten
mquadrat befindet sich auf einem aufstrebenden Ast
Standard

Diese Tabelle, die du hast wie schaut die denn aus? Also ist das eine CSV Datei oder sowas? Oder bekommst du als Grundlage schon alles in diesen Variablen übergeben??

Einen Variablennamen aus anderen Variablen zusammenzubasteln ist IMHO langfristig keine wirklich gut funktionierende Lösung.
__________________
Wir suchen PHP Entwickler (Vollzeit) im Raum Darmstadt / Rhein-Main. Infos via E-Mail mueller@new-frontiers.de
mquadrat ist offline   Mit Zitat antworten
Alt 30.07.2010, 16:03  
Benutzer
 
Registriert seit: 06.12.2007
Beiträge: 31
Commu befindet sich auf einem aufstrebenden Ast
Standard Mysql tabelle

die mysql tabelle wird aus einem PHP-Script (nicht von mir erstellt) gepflegt.
Commu 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

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
if schleife php prozente, if abfragen in schleife fassen

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