ID für Arrays aus Datenbank

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

  • ID für Arrays aus Datenbank

    Habe eine SQL-DB mit einer Tabelle "Produkte". Pro Produkt
    habe ich eine Zeile mit div. Feldern.

    Die Daten ziehe ich mittels mysql_fetch_array runter, somit
    erhalte ich pro Zeile ein Array:

    $sql = "SELECT * FROM Produkte";
    $result = mysql_query($sql, $conn);
    $data = mysql_fetch_array($result);

    Möchte nun jedem Array eine ID geben um später
    mittels dieser ID auf jedes einzelne Element des Arrays zugreifen
    zu können.

    Mir schwebt eine Kombination von WHILE und COUNT vor, komme aber
    nicht auf eine funktionierende Lösung.

    Was funktioniert ist eine Anzeige aller Daten mittels WHILE:

    while ($data = mysql_fetch_array($result)) {

    echo "<p>";
    echo $data['Produkt-ID']."<br>";
    echo $data['Name']."<br>";
    echo $data['Kategorie']."<br>";
    echo $data['Bruttopreis']."<br>";
    echo $data['Nettopreis']."<br>";
    echo "</p>";
    }

    Kann jemand helfen?

    Vielen Dank, Pat

  • #2
    Re: ID für Arrays aus Datenbank

    Original geschrieben von patina
    Mir schwebt eine Kombination von WHILE und COUNT vor, komme aber nicht auf eine funktionierende Lösung.
    Willst du lediglich einen fortlaufenden nummerischen Index? Dazu brauchst du kein count, das geht so:
    PHP-Code:
    $array = array();
    while(
    $datensatz mysql_fetch_array($result)) {
      
    $array[] = $datensatz;

    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      funktioniert. Doch ich möchte gerne auf ein Element des Arrays zugreifen. So kriege ich alle Daten einfach aneinandergereit und nicht getrennt.

      $daten = array();
      while ($data = mysql_fetch_assoc($result)) {
      $daten[] = $data;
      }

      echo implode($daten[2]);

      ergibt folgendes Resultat:

      1FernbedienungEuro200

      ich hätte gerne sowas:
      1;Fernbedienung;Euro;200

      um dann auf jedes Element greifen zu können mit z.b.

      echo $daten[2][3] oder echo $daten[2]['Preis']

      klar ?

      danke, pat

      Kommentar


      • #4
        Original geschrieben von patina
        Doch ich möchte gerne auf ein Element des Arrays zugreifen.
        Dann spreche es gezielt an.

        echo implode($daten[2]);
        Das gibt's gar nicht. implode erwartet zwei Parameter.

        um dann auf jedes Element greifen zu können mit z.b.
        echo $daten[2][3] oder echo $daten[2]['Preis']
        Ja, genau so - wo ist jetzt das Problem?

        Wenn du dir Struktur deines Arrays noch nicht verstanden hast, schau sie dir mit print_r oder var_dump an.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          ich hätte gerne sowas:
          1;Fernbedienung;Euro;200
          Dann mach einfach das implode richtig
          PHP-Code:
          echo implode(';',$daten[2]); 
          um dann auf jedes Element greifen zu können mit z.b.
          echo $daten[2][3] oder echo $daten[2]['Preis'];
          Also mit $daten[2][2] müsstest du schon bei deiner Version zugreifen können. Wenn du auch noch via String Index (also Preis) auf die Felder zugreifen willst dann musst du das bei der Erstellung des Arrays auch so machen
          PHP-Code:
          $array = array();
          while(
          $datensatz mysql_fetch_array($result)) {
            
          $array[] = array('Produkt-ID'=>$datensatz['Produkt-ID'],'Name'=>$datensatz['Name']);

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar

          Lädt...
          X