tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
1577
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Briefkasten Briefkasten ist offline Mitglied Gold
    Registriert seit
    Feb 2003
    Ort
    Österreich / Feldkirch
    Beiträge
    135
    Hallo,

    die SQL Query:

    PHP-Code:
    SELECT     id FROM         doc_desc ORDER BY id 
    Gibt mir folgende Tabelle aus:

    id
    1
    2
    4

    Nun kann ich mit mssql_fetch_array nur auf die erste Zeile darauf zugreifen. Ich möchte aber auf alle Zeilen darauf zugreifen können.

    Nun such ich ein SQL Statment mit der ich folgende ausgabe erhalte:

    id id#2 id#3
    1 2 4

    Somit könnte ich mit mssql_fetch_array wie gewohnt auf das ergebniss zugreifen. Weiß jemand wie ich das mache?

    mfg Briefkasten
     

  2. #2
    Avatar von tobee
    tobee tobee ist offline Grolba.com media
    Registriert seit
    Jul 2005
    Ort
    Karlsruhe
    Beiträge
    1.700
    Blog-Einträge
    131
    Ich kann dir nur einen Gedankenanstoß mit mysql und php geben
    PHP-Code:
    $sql "SELECT `id` FROM `doc_desc` ORDER BY id";
    $result mysql_query $sql );
    while ( 
    $row mysql_fetch_array $result ) )
    {
      
    // inhalt

    Tobee
     

  3. #3
    Briefkasten Briefkasten ist offline Mitglied Gold
    Registriert seit
    Feb 2003
    Ort
    Österreich / Feldkirch
    Beiträge
    135
    Hi,

    das Problem ist das ich hier mssql_fetch_array (es gibt keinen unterschied zwischen mysql_fetch_array oder mssql_fetch_array bis auf den verwendeten Dbserver) nicht verwenden kann.

    row gibt bei var_dump() folgendes aus:

    array(2) { [0]=> int(1) ["id"]=> int(1) }

    Das liegt daran, dass bei mssql_fetch_array() ein Array zurück gegeben wird in dem die erste Zeile gespeichert ist mit allen dazugehörigen Spalten.
    $row[0] wäre die erste Spalte also id
    Auf $row[1] bekomme ich, dann logischerweise die Meldung unknow offset. da ja keine 2te spalte laut sql query ($sql = "SELECT `id` FROM `doc_desc` ORDER BY id"; ) vorhanden ist.
    (1spalte 3 zeilen)

    Deshalb möchte ich gerne mit sql die Tabellenzeilen auf eine "zusammenlegen" damit ich, dann über die Spalten bzw. mssql_fetch_array darauf zugreifen kann.
     

  4. #4
    Avatar von tobee
    tobee tobee ist offline Grolba.com media
    Registriert seit
    Jul 2005
    Ort
    Karlsruhe
    Beiträge
    1.700
    Blog-Einträge
    131
    PHP-Code:
    $sql "SELECT `id` FROM `doc_desc` ORDER BY id"
    $result mysql_query $sql ); 
    while ( 
    $row mysql_fetch_array $result ) ) 

      
    $ids[] = $row[0]; 

    So hast du alle id's in einem Array. Wenn ich dich richtig verstanden habe?

    Tobee
     

  5. #5
    Briefkasten Briefkasten ist offline Mitglied Gold
    Registriert seit
    Feb 2003
    Ort
    Österreich / Feldkirch
    Beiträge
    135
    Hallo,

    danke tobee. Allerdings versteh ich nicht ganz......wo mein Denkfehler ist. Werde es mir nochmal genauer anschauen. Falls ich das richtig verstanden habe ist in dem Array $orw[0] wieder ein Array.

    Danke
    Geändert von Briefkasten (26.01.07 um 11:28 Uhr)
     

  6. #6
    DesperadoY2k DesperadoY2k ist offline Grünschnabel
    Registriert seit
    Mar 2006
    Beiträge
    1
    Hallo,

    row[0] enthält selbst kein array, aus diesem Grund kannst du dir, wie von Tobee vorgschlagen ein Array erzeugen, in dem du alle Zeilen der Tabelle per Fetch und While-Schleife in eines einliest.
    Die Funktion mssql_fetch_array lädt immer nur "eine" Zeile einer Tabelle in ein Array.

    Tabelle X (Spalte1,Spalte2,....,Spalte n)

    Per mssql_fetch_array erhälst du das Array row mit:

    Row[0]=Spalte1, Row[1]=Spalte 2, ... , Row[n-1]=Spalte n

    und zwar jeweils immer den Inhalt der aktuellen Zeile.

    In deinem Fall besteht die Tabelle nur aus einer Spalte (ID) somit auch das Array row nur aus einem Element.
    Jedes Element des Array enthält immer nur den Inhalt der aktuell gefetchten Zeile, per Fetch holst du dir dann dann jeweils die nächste Zeile.

    Es gibt je nach DB System aber auch Funktionen, die dir zu einer Spalte ein Array fetchen können.

    Gruss
     

Ähnliche Themen

  1. sql Ausgabe in 1 Zeile
    Von ploRa im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 17.07.09, 10:48
  2. Ausgabe von nur EINER zeile
    Von gello im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 15.06.07, 11:10
  3. Ausgabe einer Zeile in SQL ?
    Von Sergo im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 04.01.06, 21:43
  4. Antworten: 1
    Letzter Beitrag: 05.10.04, 21:08
  5. zeile einer db-Ausgabe löschen
    Von kesnw im Forum PHP
    Antworten: 6
    Letzter Beitrag: 16.04.04, 02:42