Ankündigung

Einklappen
Keine Ankündigung bisher.

Team Bilder nach Anzahl sortieren/positionieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Team Bilder nach Anzahl sortieren/positionieren

    Hallo,

    ich habe ein kleines Problem, wo ich nicht wirklich weiter komme. Ich habe eine Seite wo Teammitglieder angezeigt werden die aus der Datenbank geladen werden.
    Nun war meine Idee um das ganze etwas schöner von der Darstellung her zu machen die Bilder je nach anzahl zu positionieren.

    Beispiel aktuelle aufteilung:
    Person 1 Person 2 Person 3
    Person 4 Person 5
    Wie ich das gerne darstellen würde:
    Person 1 Person 2 Person 3
    Person 4 Person 5
    Und wenn es z.B. 4 einträge sind dann der von Person 4 in der Mitte.
    Ich nutze schon ein Bootsrap Grid zur Ausrichtung, jetzt stellt sich mir nur die frage wie ich das ganze dazu bekomme dass es entweder in der mitte ein leeres Grid einfügt oder Links und rechts.

    Hat da jemand eine idee? Den SourceCode der Seite habe ich mal angefügt:
    PHP-Code:
    <div class="container">
    <div class="row">
    <?php
    $team_wrapper 
    0;
    foreach (
    $daten as $content) {
    if(
    $content->rank == "1"){
    $content->rank "<a href='lexicon/index.php?entry/37-teamstruktur/#4-Lehrling'>Lehrling</a>";
    } else if(
    $content->rank == "2"){
    $content->rank "<a href='lexicon/index.php?entry/37-teamstruktur/#3-Magier'>Magier</a>";
    } else if(
    $content->rank == "3"){
    $content->rank "<a href='lexicon/index.php?entry/37-teamstruktur/#5-ErzMagier'>ErzMagier</a>";
    } else if(
    $content->rank == "4"){
    $content->rank "<a href='lexicon/index.php?entry/37-teamstruktur/#2-Prinzessin'>Prinzessin</a>";
    } else if(
    $content->rank == "5"){
    $content->rank "<a href='lexicon/index.php?entry/37-teamstruktur/#1-Ur-Magier'>UrMagier</a>";
    }

    if(
    $content->rank != "6" && $content->rank != "7"){
    echo 
    '<section class="col-md-4">';
    echo 
    "<cite><img src='https://minotar.net/armor/bust/$content->uuid/1000.png' alt='$content->name'></cite>";
    echo 
    '<blockquote>';
    echo 
    "$content->quote";
    echo 
    '</blockquote>';
    echo 
    '<p>';
    echo 
    "<strong>$content->name</strong>, $content->rank";
    echo 
    '</p>';
    echo 
    '</section>';
    } else {
    $team_wrapper 1;
    }
    }
    ?>
    </div>

    <?php
    if($team_wrapper == 1){
    echo 
    '<div class="row">';
    echo 
    '<h2 style="margin-bottom: -1.25rem; margin-top: 0rem;">LoreTeam</h2>';
    echo 
    '<div class="row items-container bottom-wrapper">';
    echo 
    '<p>&nbsp;<br>&nbsp;</p>';
    echo 
    '</div>';
    echo 
    '</div>';
    }
    ?>

    <div class="row">
    <?php
    foreach ($daten as $content) {
    if(
    $content->rank == "6" || $content->rank == "7"){
    if(
    $content->rank == "6"){
    $content->rank "<a href='lexicon/index.php?entry/37-teamstruktur/#6-LoreTeam'>LoreTeam</a>";
    } else if(
    $content->rank == "7"){
    $content->rank "<a href='lexicon/index.php?entry/37-teamstruktur/#7-Spielleitung'>Spielleitung</a>";
    }

    echo 
    '<section class="col-md-4">';
    echo 
    "<cite><img src='https://minotar.net/armor/bust/$content->uuid/1000.png' alt='$content->name'></cite>";
    echo 
    '<blockquote>';
    echo 
    "$content->quote";
    echo 
    '</blockquote>';
    echo 
    '<p>';
    echo 
    "<strong>$content->name</strong>, $content->rank";
    echo 
    '</p>';
    echo 
    '</section>';
    }
    }
    ?>
    </div>

    </div>
    Über ideen und Antworten würde ich mich freuen.
    A computer program does what you tell it to do, not what you want it to do.

  • #2
    Hallo,

    mit PHP lässt sich der Rest einer Division ermitteln, siehe

    Arithmetische Operatoren
    $a % $b Modulus Rest von $a geteilt durch $b.
    Quelle: https://www.php.net/manual/de/langua...arithmetic.php
    also Gesamtzahl geteilt durch 3 und wenn ...

    ... Restwert 1 ist, dann kommt der letzte Eintrag in die Mitte
    ... Restwert 2, dann die Einträge rechts und links
    ... Restwert 0, dann wird die Zeile nicht gebraucht.

    daniel5959
    FindeLinks.de - Kurzinfos mit Linkempfehlung
    Homepage-FAQs.de - seit Ende 2020 offline

    Kommentar


    • #3
      Hallo,

      danke erstmal für die Antwort, jetzt gibt es aber noch ein problem, die Seite ist in 2 Parts aufgeteilt, zum einen das HauptTeam und zum Anderen das LoreTeam, die werden wie oben zu sehen aus der selben DB geladen.
      Beim ausgeben wird dann geprüft wo das jeweilige Mitglied hingehört. Wie bekomme ich jetzt die genaue anzahl für das HauptTeam und für das LoreTeam?
      A computer program does what you tell it to do, not what you want it to do.

      Kommentar


      • #4
        Hallo,

        meine PHP-Programmierungen liegen schon ziemlich lange zurück und ich war nie ein PHP-Profi - das vorweg.

        Man könnte die foreach-Schleife erstmal nur als Zählung durchlaufen lassen, um die Gesamtzahlen und die Restwerte der beiden Teams zu ermitteln.

        Die ermittelten Werte dann nutzen, um bei Beginn der letzte Zeile dann entweder 3 Einträge, 2 Einträge links und rechts oder 1 Eintrag in der Mitte anzuzeigen.

        daniel5959
        Zuletzt geändert von daniel5959; 18.01.2021, 17:24.
        FindeLinks.de - Kurzinfos mit Linkempfehlung
        Homepage-FAQs.de - seit Ende 2020 offline

        Kommentar


        • #5
          Zitat von daniel5959 Beitrag anzeigen
          Man könnte die foreach-Schleife erstmal nur als Zählung durchlaufen lassen, um die Gesamtzahlen und die Restwerte der beiden Teams zu ermitteln.
          Das selbe habe ich auch überlegt, ich denke aber dass es da eine besser lösung gibt welche effizienter ist.
          Aber ich werde es vorerst damit testen.
          A computer program does what you tell it to do, not what you want it to do.

          Kommentar


          • #6
            Du hast ja schon zwei foreach-Schleifen. Es würde das Ganze übersichtlicher machen, wenn Du eine Schleife davor schalten würdest, wo Du die Ranks umänderst und die Daten auf zwei Arrays aufteilst, etwa so (ungetestet):
            PHP-Code:
            $istrank67 false;
            $rank67 = [];
            $rank1bis5 = [];
            foreach (
            $daten as $content) {
                switch (
            $content->rank) {
                    
            // als erstes werten wir rank1 bis rank5 aus
                    
            case 1:
                        
            $content->rank "<a href='lexicon/index.php?entry/37-teamstruktur/#4-Lehrling'>Lehrling</a>";
                        break;
                    case 
            2:
                        
            $content->rank "<a href='lexicon/index.php?entry/37-teamstruktur/#3-Magier'>Magier</a>";
                        break;
                    
            // usw. fuer rank3 bis rank5

                    // jetzt bleiben noch rank6 und rank7
                    // dabei setzen wir die Kennung $istrank67 auf true
                    
            case 6:
                        
            $content->rank "<a href='lexicon/index.php?entry/37-teamstruktur/#6-LoreTeam'>LoreTeam</a>";
                        
            $istrank67 true;
                        break;
                    case 
            7:
                        
            $content->rank "<a href='lexicon/index.php?entry/37-teamstruktur/#7-Spielleitung'>Spielleitung</a>";
                        
            $istrank67 true;
                        break;
                }
                
            // das Ergebnis tragen wir in das richtige Array ein
                
            if ($istrank67) {
                    
            $rank67[] = $content;
                } else {
                    
            $rank1bis5[] = $content;
                }
                
            // jetzt stehen die Daten getrennt in den beiden Arrays bereit 
            Zuletzt geändert von Sempervivum; 19.01.2021, 08:31.

            Kommentar


            • #7
              Zitat von Sempervivum Beitrag anzeigen
              Du hast ja schon zwei foreach-Schleifen. Es würde das Ganze übersichtlicher machen, wenn Du eine Schleife davor schalten würdest, wo Du die Ranks umänderst und die Daten auf zwei Arrays aufteilst, etwa so (ungetestet):
              Das würde es auf jedenfall übersichtlicher machen, werde das ganze mal morgen testen.
              Danke schonmal im vorraus.
              A computer program does what you tell it to do, not what you want it to do.

              Kommentar


              • #8
                BTW: Wenn man PDO verwendet, kann man auch nach den Werten einer Spalte gruppieren, d. h. in diesem Fall ein Array mit zwei Unterarrays für die beiden Gruppen von Ranks erzeugen:
                PHP-Code:
                $result $pdo->query('SELECT (rank in (6, 7)) as rankgroup, rank, first_name, last_name FROM testranks')
                    ->
                fetchAll(PDO::FETCH_GROUP PDO::FETCH_ASSOC);
                var_dump($result); 
                Meine Testtabelle:
                Code:
                create table testranks (
                    id INT,
                    first_name VARCHAR(50),
                    last_name VARCHAR(50),
                    rank INT
                );

                Kommentar


                • #9
                  Zitat von Sempervivum Beitrag anzeigen
                  Du hast ja schon zwei foreach-Schleifen. Es würde das Ganze übersichtlicher machen, wenn Du eine Schleife davor schalten würdest, wo Du die Ranks umänderst und die Daten auf zwei Arrays aufteilst, etwa so (ungetestet):
                  Das ganze funktioniert Super, die Seite ist schnell und Sortiert alles richtig.
                  Code:
                  $istrank67 = true;
                  habe ich nach dem schreiben in den array wieder auf false gesetzt, da er sonnst alles dort einsortiert.
                  Das wurde in deinem Code Beispiel vergessen.

                  Danke für die schnelle und gute Hilfe.
                  A computer program does what you tell it to do, not what you want it to do.

                  Kommentar


                  • #10
                    Freut mich, dass es funktioniert, gern geschehen!

                    Kommentar

                    homepage-forum.de - Hilfe für Webmaster! Statistiken

                    Einklappen

                    Themen: 56.806   Beiträge: 430.100   Mitglieder: 28.559   Aktive Mitglieder: 52
                    Willkommen an unser neuestes Mitglied, daetr2095.

                    Online-Benutzer

                    Einklappen

                    238 Benutzer sind jetzt online. Registrierte Benutzer: 4, Gäste: 234.

                    Mit 3.502 Benutzern waren am 23.01.2020 um 18:20 die meisten Benutzer gleichzeitig online.

                    Die neuesten Themen

                    Einklappen

                    • daetr2095
                      Webseite, die local erreichbar ist, im Internet erreichbar machen
                      Ich habe auf Debian Buster: Mysql, php8, Apache, Phomyadmin laufen.
                      Local funktioniert auch alles.
                      Ich möchte nun meine Webseite, die local erreichbar ist, im Internet erreichbar machen.
                      Per Portfreigabe habe ich es schon probiert doch die unterstützt mein Router(Vodaphone Station)...
                      Heute, 10:12
                    • Megabyte
                      Antwort auf Vane
                      Hallo...

                      Öffne mal mit einem reinen Texteditor (notepad++, vscode etc.) die Datei 'wp-config.php' im Wordpress-Installationsverzeichnis. Dort solltest du folgende Zeile finden: define( 'WP_AUTO_UPDATE_CORE', 'minor' );

                      Kannst auch mal 'minor' mit 'true' überschreiben. Das...
                      Gestern, 02:41
                    • Megabyte
                      Antwort auf Formularvalidierung - Wie macht ihr es?
                      Ist ein Kurs von "WBS Training" und nennt sich "Webdevelopement & Webdesign" mit Abschlusszertifikat. Da es in dem Bereich ja keine regulierten Normen für diese Begrifflichkeiten gibt ist es wohl eher ein Teilnahmenachweis und Zeugnis. Da mein letzter Arbeitgeber Konkurs anmelden...
                      Gestern, 02:34
                    • Localfu
                      Antwort auf Formularvalidierung - Wie macht ihr es?
                      Mag schon sein, dass Siemens noch den Internet Explorer 8 als Standard verwendet, aber selbst zu der Zeit des Internet Explorer 8 war dieser schon veraltet und hat Standards aus HTML4 nicht wieder gegeben. Zudem war der Zweifel der Sicherheit schon immer groß, wenn es um IE geht. HTML4 ist seit Jahren...
                      03.03.2021, 23:40
                    • Megabyte
                      Antwort auf Formularvalidierung - Wie macht ihr es?
                      Hehehe... War genau MEIN Argument an den Dozenten :-). Seine Antwort war, dass diese Kenntnisse im Kurs vermittelt werden damit zumindest das Wissen über die Unterschiede und deren Historie bekannt sind. Ferner meinte er, dass er schon etliche Kunden hatte welche ewig nicht upgedatet haben (aus zum...
                      03.03.2021, 22:50

                    Die neuesten Beiträge

                    Einklappen

                    Lädt...
                    X