Problem mit Datenbankabfrage unter Oracle

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

  • Problem mit Datenbankabfrage unter Oracle

    Hallo,

    ich möchte gerne eine Datenbankabfrage unter Oracle machen, nur leider bekomme ich nicht das gewünschte Ergebnis. Habe hier auch schon gesucht, aber leider nichts gefunden.

    Hier ein Auszug aus dem Skript:
    PHP-Code:
    $conn Connect_db();
    if (
    $conn)
    {
       
    $sql "select count(artanzahl) as anzahl, kdname
                      from artartikel, kddaten 
                      where artrefnr = kdrefnr
                      and artdate between '"
    .$date_begin."' and '".$date_end."'
                      group by kdname
                      order by kdname"
    ;

       
    $stmt OCIParse($conn$sql);
       
    OCIExecute($stmt);
       
    $nrows OCIFetchStatement($stmt$results);

       for (
    $i 0$i $nrows$i++)
       {
           echo 
    "Name: ".$results['kdname'][$i].
                 Anzahl: "
    .$results['anzahl'][$i]."<br>";
       }
       
    OCIFreeStatement($stmt);

    Lasse ich mir das Ergebnis ausgeben, werde alle Name angezeigt, aber keine Anzahl dahinter. Das SQL-Statement funktioniert aber, wenn ich es direkt in der Datenbank ausführe.

    Habe jetzt schon mehrere Möglichkeiten probiert, aber keine führt zu dem gewünschten Ergebnis. Ich erhalte immer nur die Namen, aber keine Anzahl dahinter.

    Weiß jemand wie es richtig lauten muss?

    Schon mal vielen Dank für eure Hilfe.

    Grüße,
    cerry

  • #2
    nimm das as mal raus, eventuell geht's ja dann auch mit php

    ein
    PHP-Code:
    print_r($results); 
    sollte dir auch weiterhelfen
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Dann könntest DU eventuell nochmal statt dem OCIFetchStatement
      PHP-Code:
      oci_fetch_all() 
      nehmen. Dann nochmal mit
      PHP-Code:
      print_r 
      den Inhalt überprüfen. Sollte das nicht klappen, dann wäre das Hier vielleicht zum Testen interessant:

      PHP-Code:
      <?php
      $conn          
      oci_connect("test""test");
      $statement oci_parse($conn"select count(artanzahl) as anzahl, kdname
                        from artartikel, kddaten 
                        where artrefnr = kdrefnr
                        and artdate between '"
      .$date_begin."' and '".$date_end."'
                        group by kdname
                        order by kdname"
      );
                            
      oci_execute($statement);

      $rows         oci_fetch_all($stmt$results);

      if (
      $rows 0) {
         print 
      "<table border=\"1\">\n";
         print 
      "<tr>\n";
         while (list(
      $key$val) = each($results)) 
                 {
                 print 
      "<th>$key</th>\n";
                }
                 print 
      "</tr>\n";
         
         for (
      $i 0$i $rows$i++) 
              {
              
      reset($results);
              print 
      "<tr>\n";
         
           while (
      $column each($results)) 
                    {  
                    
      $data $column['value'];
                    print 
      "<td>$data[$i]</td>\n";
                    }
                    print 
      "</tr>\n";
              }
              print 
      "</table>\n";
            } 
           else {
                   print 
      "Keine Daten vorhanden<br />\n";
                  }      
      echo 
      "$nrows Records Selected<br />\n";
       
      oci_free_statement($stmt);
      oci_close($conn);
      ?>
      Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

      Kommentar


      • #4
        Vielen Dank mrhappiness,

        scheint wirklich an diesem 'as' gelegen zu haben.

        Habe es rausgenommen und siehe da, es funktioniert.

        Gruß,
        cerry

        Kommentar


        • #5
          @cerry

          schön


          @Yooda
          loser
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #6
            Hallo Yooda,

            vielen Dank, werde mir es gleich mal anschauen.

            Da fällt mir zuvor aber noch eine Frage ein.

            Du nimmst oci_parse und nicht OCIParse. Ich frage mich schon die ganze Zeit worin der Unterschied liegt, weißt du es vielleicht?

            Gruß, cerry

            Kommentar


            • #7
              @mrhappiness
              Looser




              @cerry

              Du nimmst oci_parse und nicht OCIParse. Ich frage mich schon die ganze Zeit worin der Unterschied liegt, weißt du es vielleicht?
              Keine Ahnung, wo der Unterschied besteht...
              Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

              Kommentar


              • #8
                muss ich dein erstes zitat verstehen?
                ich hab loser geschrieben und nicht looser
                looser ist übrigens falsch (heißt nämlich "lockerer", als komparativ zu loose - locker)


                du loser
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  OffTopic:
                  Jaja.... Wenn man nur richtig lesen könnte...


                  Meine Augen sind auch nicht mehr das was sie mal waren...
                  Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

                  Kommentar


                  • #10
                    Original geschrieben von cerry
                    Du nimmst oci_parse und nicht OCIParse. Ich frage mich schon die ganze Zeit worin der Unterschied liegt, weißt du es vielleicht?
                    wenn ihr 2 auch mal einen Blick ins Manual reingeworfen hättet, dann braucht ihr nicht zu überlegen

                    aus ociparse:

                    Note: This function was renamed to oci_parse() after PHP >= 5.0.0. For downward compatibility ociparse() can also be used. This is deprecated, however.
                    aus oci_parse:

                    Note: In PHP versions before 5.0.0 you must use ociparse() instead. This name still can be used, it was left as alias of oci_parse() for downwards compatability. This, however, is deprecated and not recommended.

                    Kommentar


                    • #11
                      OffTopic:
                      du bist so gemein, yooda hat doch schon geschrieben, dass seine augen nicht mehr sind was sie mal waren
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        OffTopic:
                        und ich dachte Yooda hat doch längst sein Löffel abgegeben (zumindest in Star Wars) was also interessiert mich wie sein Augen sind/waren

                        Kommentar

                        Lädt...
                        X