• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Automatische Kategorieübersicht mit php

Nikas3D

Neues Mitglied
PHP:
<?php
    require_once("includes/head.php");
    loggedin();    
    
    $abfrage1 = mysql_query("SELECT warenname FROM `marktdaten` ORDER BY warenname ASC"); // ASC -> alphabetisch geordnet
    Fehler();
    
    if($row1 = mysql_fetch_object($abfrage1)) //wenn es marktangebote gibt
    {    
        ?>    
            <table border="1px">
                <tr>
                    <td>
                        Ware:
                    </td>        
                </tr> 
                
                <?php
                    do // zeigt alle Waren an! --- Da bereits der erste Datensatz ausgelesen wurde, kann dieser angezeigt werden, danach muss wieder auf eine weitere Ware überprüft werden
                    {
                        $waren_name             = $row1->warenname;
                        $angebot_anzahl         = 3; //BEISPIEL
                        ?>
                            <tr>                                
                                <td>
                                    <a href="markt_index.php?ware=<?php echo $waren_name; ?>"><?php echo $waren_name." (".$angebot_anzahl.")"; // Warenname wird verlinkt + Anzahl der Amgeobte?></a> 
                                </td>
                            </tr>
                        <?php
                    } while($row1 = mysql_fetch_object($abfrage1));
                    // überprüft auf weitere ware im lager
                ?>
            </table>
        <?php
    }
?>
Das ist mein Code!
Und folgendes wird ausgegen:


Ich möchte aber gerne:
holz (3)
stahl(3)
stein (2)


Es geht hierbei um eine Marktüberischt.
Die Produkte die es gibt sollen nach ihrer Ware sortiert in Kategorien untergebracht werden!
Die Zahl in den Klammern steht für die Anzahl der Angebote die es pro Ware gibt!

Wie schaffe ich es meine gewünschte tabelle anzeigen zulassen
Ich habe es mit Einträge zählen mit Kombination einer for schleife versucht! der versuch ist aber im sande zerlaufen! Bitte helft mir!
 
Werbung:
Du machst 2 x fetch_object.
Ps: Nimm lieber fetch_assoc da du fetch_object wirklich NIIIIIIIE außer in ganz seltenen fällen brauchen wirst.

//Edit: ok in deiner Struktur hat es doch ein weeeeeenig sinn.... nur ein bisschen aber wenigstens etwas...

Besser mit num_rows prüfen ob du einträge hast und dann mit einer normalen while ausgeben... ist besser zu lesen

PHP:
while(false !== ($row = mysql_fetch_assoc($resource, $link))) {

//Edit 2: ach und um dein eigentliches problem anzugehen... hast du schonmal geguckt was alles in der tabelle marktdaten steht? du liest nähmlich ALLES aus was da drin steht...
 
Werbung:
Vielen Dank, ich wusste nicht das es GROUP BY gibt!

Richtige Lösung:

PHP:
<?php
    require_once("includes/head.php");
    loggedin();    
    
    $abfrage1 = mysql_query("SELECT warenname FROM `marktdaten` GROUP BY warenname ASC"); // ASC -> alphabetisch geordnet
    Fehler();
    
    if($row1 = mysql_fetch_object($abfrage1)) //wenn es marktangebote gibt
    {    
        ?>    
            <table border="1px">
                <tr>
                    <td>
                        Ware:
                    </td>        
                </tr> 
                
                <?php
                    do // zeigt alle Waren an! --- Da bereits der erste Datensatz ausgelesen wurde, kann dieser angezeigt werden, danach muss wieder auf eine weitere Ware überprüft werden
                    {
                        $waren_name             = $row1->warenname;
                        $abfrage2 = mysql_query("SELECT warenname FROM `marktdaten` WHERE warenname = '".$waren_name."' ORDER BY warenname ASC"); // ASC -> alphabetisch geordnet
                        Fehler();
                        $angebot_anzahl = mysql_num_rows($abfrage2); 
                        ?>
                            <tr>                                
                                <td>
                                    <a href="markt_index.php?ware=<?php echo $waren_name; ?>"><?php echo $waren_name." (".$angebot_anzahl." Angebote)"; // Warenname wird verlinkt + Anzahl der Amgeobte?></a> 
                                </td>
                            </tr>
                        <?php
                    } while($row1 = mysql_fetch_object($abfrage1));
                    // überprüft auf weitere ware im lager
                ?>
            </table>
        <?php
    }
?>
 
Achso, du willst nur die Namen, keinen Zähler. Dann wäre vermutlich auch
SELECT DISTINCT warenname FROM ...
 
Zurück
Oben