heidtmann: assoziierte arrays

Guten Abend,

es ist schon sehr lange her, als ich das letzte mal mit PHP programmiert habe. Und wie der Anfang immer so ist, stehe ich wieder auf dem Schlauch. Bin gerade dabei mir ein Lagerverwaltungsprogramm zu schreiben.

Mein Ziel ist die Erstellung von assoziierte Arrays deren Inhalte aus einer MySQL Tabelle aufgefüllt werden.

Mein genaueres Problem ist die mysql_query bzw. die while-Schleife (while($row = mysql_fetch_array($result)){...}), die die Anfrage in ein Array sammelt. Ich weiß nicht ob fetch_array der richtige Weg ist.

Ich kann mich noch zu meinen Programmierzeiten in C daran erinnern, dass man dort die arrays so array[][] assoziieren konnte. Gibt es sowas auch in PHP?

Vielleicht etwas zu viel, aber hier der Code abschnitt wo ich es einbauen möchte:

[code lang=html<div id="content">
<div class="style_5">
Neu Kommissionierung
</div>
<div class="style_6" >
<table cellspacing="0" cellpadding="0" border="0">
<tr bgcolor="#E5E5E5">
<td width="10px" height="20px" align="left">&nbsp;</td>
<td width="120px" height="20px" align="left"><b>Artikel-Nr.</b></td>
<td width="300px" height="20px" align="left"><b>Artikelbeschreibung</b></td>
<td width="50px" height="20px" align="center"><b>€ / St.</b></td>
<td width="80px" height="20px" align="right"><b>Bestand</b></td>
<td width="50px" height="20px" align="right">&nbsp;</td>
<td width="150px" height="20px" align="left"><b>Kommissionierung</b></td>
</tr>
<tr>
<td width="10px" height="20px" align="left" valign="top">&nbsp;</td>
<td width="120px" height="20px" align="left" valign="top">
<select style="width:120px;" name="select1">
<option>Art.-Nr. auswählen</option>
<option value="item1">Artikel-Nr.: aus der MySQL Tabelle ca. 60 Art-Nr.:</option>
<option value="...">...</option>
</select>
</td>
<td width="300px" height="20px" align="left" valign="top"><?PHP echo"die passende Artikelbeschreibung aus der MySQL-Tabelle"; ?></td>
<td width="50px" height="20px" align="center" valign="top"><?PHP echo"der passender Preis aus der MySQL-Tabelle"; ?></td>
<td width="80px" height="20px" align="right" valign="top"><?PHP echo"der passender Bestand aus der MySQL-Tabelle"; ?></td>
<td width="50px" height="20px" align="right" valign="top">&nbsp;</td>
<td width="150px" height="20px" align="left" valign="top"><input type="text" name="komm1_bis_num_rows_der_mysql_abfrage" /></td>
</tr>
</table>
</div>
</div>[/code]

Wünsche allen noch ein schönen Abend noch.

  1. Hallo,

    Mein Ziel ist die Erstellung von assoziierte Arrays deren Inhalte aus einer MySQL Tabelle aufgefüllt werden.

    das ist einfach.

    Mein genaueres Problem ist die mysql_query bzw. die while-Schleife (while($row = mysql_fetch_array($result)){...}), die die Anfrage in ein Array sammelt.

    Wenn der Schleifenrumpf ausgeführt wird, enthält $row ein Array, soweit so gut. Nehmen wir an, Du möchtest das in einem Array $data sammeln:

      
    # Wir fangen mit einem leeren Array an  
    $data = array();  
    while ($row = mysql_fetch_array($result) {  
        # Hänge die Ergebniszeile ans Ende an.  
        $data[] = $row;  
    }
    

    Ich kann mich noch zu meinen Programmierzeiten in C daran erinnern, dass man dort die arrays so array[][] assoziieren konnte. Gibt es sowas auch in PHP?

    nur ist der Umgang mit Arrays in PHP viel angenehmer als in C :-)

    Nehmen wir an, Du hättest mit obigem Code-Abschnitt 10 Datensätze eingelesen. Nun kannst Du mit

    $data[<datensatznummer>]['<spaltennam>'], z.B.

    $data[0]['Artikelbezeichnung']

    auf den Inhalt einer Spalte eines bestimmten Datensatzes zugreifen und leicht über eine Schleife Deine HTML-Tabelle füllen.

    Noch ein Verbesserungsvorschlag zu Deinem HTML: entsorge die Inline-Styles und die veralteten Attribute und regle das mit einem hübschen externen Stylesheet. Dein Code ist gleich viel aufgeräumter und übersichtlicher. Die Spalten könntest Du mit http://de.selfhtml.org/html/tabellen/aufbau.htm#vordefinieren@title=col-Elementen vordefinieren (die Breitenangaben bitte im Stylesheet, ja). Gib dazu den verschiedenen Spalten entweder Klassen oder ids.

    Freundliche Grüße

    Vinzenz

    1. vielen dank vinzenz für deine hilfe.

      lg
      heidtmann

  2. Hi,

    Mein genaueres Problem ist die mysql_query bzw. die while-Schleife (while($row = mysql_fetch_array($result)){...}), die die Anfrage in ein Array sammelt. Ich weiß nicht ob fetch_array der richtige Weg ist.

    Das kommt darauf an, wo hin du auf diesem Weg willst.

    Dass es diverse Arten von mysql_fetch-Funktionen gibt, hast du dir schon angeschaut, und auch was die je nach Parameter ggf. für ein Ausgabeformat liefern?

    Ich kann mich noch zu meinen Programmierzeiten in C daran erinnern, dass man dort die arrays so array[][] assoziieren konnte. Gibt es sowas auch in PHP?

    Was es gibt, beschreibt das Handbuch: http://www.php.net/manual/en/language.types.array.php

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.