Ankündigung

Einklappen
Keine Ankündigung bisher.

MAX() in einer foreach Schleife

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • king-ich
    antwortet
    Zitat von eagle275 Beitrag anzeigen
    das ist mir schon klar - aber spätestens bei der Anzeige der Gewinner würde ich doch eigentlich etwas erwarten in der Form

    Code:
    Bieter <Horst> hat bei der Auktion <12345678> mit einem Gebot von <20€> gewonnen.
    Das Gewinner Angebot / Auktionsende war "13:00 Uhr am 11.11.2019"
    So in etwa ist es ja.

    Der Problemcode ist nur ein Teil einer .php Datei, die sich Übersicht nennt, und auf der an einer anderen Stelle das Ende der Auktion sichtbar wird.

    Einen Kommentar schreiben:


  • eagle275
    antwortet
    das ist mir schon klar - aber spätestens bei der Anzeige der Gewinner würde ich doch eigentlich etwas erwarten in der Form

    Code:
    Bieter <Horst> hat bei der Auktion <12345678> mit einem Gebot von <20€> gewonnen.
    Das Gewinner Angebot / Auktionsende war "13:00 Uhr am 11.11.2019"

    Einen Kommentar schreiben:


  • king-ich
    antwortet
    Zitat von eagle275 Beitrag anzeigen
    timestamp .. *graus* *schauder* ... DATETIME für lesbare Datum+Zeitangaben !
    Es sollen keine lesbaren Datums+Zeitangaben daraus resultieren. Es ist für den Fall dass 2 Gebote in selber Höhe abgegeben werden, und per timestamp ermittelt wird wer zuerst den Preis abgegeben hat.

    Einen Kommentar schreiben:


  • eagle275
    antwortet
    timestamp .. *graus* *schauder* ... DATETIME für lesbare Datum+Zeitangaben !

    Einen Kommentar schreiben:


  • king-ich
    antwortet
    hausl Ja

    Einen Kommentar schreiben:


  • king-ich
    antwortet
    Für jede bekommst dann das max(), was nach mehr oder weniger langer Nachdenkzeit offensichtlicher Murks ist. Oder?
    Aber das ist genau das was ich will:

    Alle beendeten Auktionen mit Angabe des (MAX(preiseingabe) und welcher (kunde) das MAX() abgegeben hat.

    Einen Kommentar schreiben:


  • hausl
    antwortet
    Code:
    --
    -- Daten für Tabelle `gebote`
    --
    
    INSERT INTO `gebote` (`id`, `kunde`, `angebot_id`, `preiseingabe`, `timestamp`) VALUES
    (25, 'Maxi', '30', '1.00', '1571946761'),
    (26, 'King Ich', '30', '1.00', '1571946924'),
    (27, '123', '30', '1.00', '1572275442'),
    (28, 'Maxi', '35', '181.00', '1573243707'),
    (29, 'King Ich', '35', '182.00', '1573244905');
    Er hat vermutlich da mehr Gebote zu jeder Auktion und will in der Liste das jeweils höchste anzeigen?

    king-ich Ja?

    Einen Kommentar schreiben:


  • akretschmer
    antwortet
    Zitat von king-ich Beitrag anzeigen
    Habe wichtige Daten einer.sql Datei als .txt Datei im Anhang.

    Hoffe das reicht zum auswerten..

    Danke schon einmal für's Interesse und eingebrachter Zeit. [ATTACH]n1563611[/ATTACH]
    Du hast also 5 verschiedene Auktionen mit jeweils einer anderen Aktionsnummer. Du gruppierst (u.a.) nach diesen 5 Nummern, also willst Du diese 5 auch alle sehen. Für jede bekommst dann das max(), was nach mehr oder weniger langer Nachdenkzeit offensichtlicher Murks ist. Oder?

    Einen Kommentar schreiben:


  • king-ich
    antwortet
    PHP-Code:
    <?php

                    $sql 
    "***";

                    
    $result $pdo->query($sql); ?>

                    <div class="table">
                        <table>
                            <tr class="border">
                                <th>Auktion</th>
                                <th>Höchstgebot</th>
                                <th>User</th>
                            </tr>

                            <?php foreach ($result as $reihe):
    /*Nacheinander alle beendeten Auktionen mit
    Angabe des Höchstbietenden (kunde) und den dazu gehörenden (MAX(preiseingabe))*/

                            
    ?><tr>
                            <td><?php echo $reihe['titel'];?></td>
                            <td><?php echo $reihe['max']; ?></td>
                            <td><?php echo $reihe['kunde']; ?></td>
                            </tr>
                            <tr style="height:0.4em"></tr>
                            <?php endforeach; ?>
                        </table>
                    </div>

    Einen Kommentar schreiben:


  • king-ich
    antwortet
    Habe wichtige Daten einer.sql Datei als .txt Datei im Anhang.

    Hoffe das reicht zum auswerten..

    Danke schon einmal für's Interesse und eingebrachter Zeit. auktion.txt

    Einen Kommentar schreiben:


  • VPh
    antwortet
    Ne, das sind ja nicht die Daten. Wir müssen ja irgendwie nachvollziehen wie es in deiner Datenbank aussieht und wie das Ergebnis davon aussehen soll.

    Einen Kommentar schreiben:


  • king-ich
    antwortet
    PHP-Code:
    <?php

                    $sql 
    "SELECT gebote.kunde, MAX(preiseingabe) AS max, angebote.Auktionsnummer, angebote.titel
    FROM gebote LEFT JOIN angebote ON gebote.angebot_id = angebote.Auktionsnummer
    WHERE timediff(now(), angebote.dauer) > 0 AND angebote.user = '
    {$user}'
    GROUP BY gebote.kunde, angebote.Auktionsnummer, angebote.titel"
    ;

                    
    $result $pdo->query($sql); ?>

                    <div class="table">
                        <table>
                            <tr class="border">
                                <th>Auktion</th>
                                <th>Höchstgebot</th>
                                <th>User</th>
                            </tr>

                            <?php foreach ($result as $reihe):
                            
    $titel $reihe['titel'];
                            
    $preis $reihe['max'];
                            
    $kunde $reihe['kunde'];
                            
    $preiseingabe number_format($preis2","".");

                            
    ?><tr>
                            <td><?php echo $titel;?></td>
                            <td><?php echo $preiseingabe?></td>
                            <td><?php echo $kunde?></td>
                            </tr>
                            <tr style="height:0.4em"></tr>
                            <?php endforeach; ?>
                        </table>
                    </div>
    Reicht?

    Einen Kommentar schreiben:


  • VPh
    antwortet
    Dann zeig mal ein paar Beispieldaten und das gewünschte Ergebnis für diese Daten.

    Einen Kommentar schreiben:


  • king-ich
    antwortet
    Zitat von akretschmer Beitrag anzeigen
    auf was soll sich denn das max() beziehen? Wenn Du nach Auktionsnummer gruppierst, und jede hat da seine eigene, dann ist das Result nachvollziehbar ...
    Das max() soll sich auf die größte 'preiseingabe' einer 'Auktionsnummer' beziehen, die einen eigenen 'titel' und einen höchstbietenden 'kunde` hat.

    Ist wohl vom Ansatz her schon eine falsche Query?(!)

    Einen Kommentar schreiben:


  • akretschmer
    antwortet
    auf was soll sich denn das max() beziehen? Wenn Du nach Auktionsnummer gruppierst, und jede hat da seine eigene, dann ist das Result nachvollziehbar ...

    Einen Kommentar schreiben:

Lädt...
X