Problem mit Datenbankabfrage unter Oracle

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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...

    Comment


    • #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.

      Comment


      • #4
        Vielen Dank mrhappiness,

        scheint wirklich an diesem 'as' gelegen zu haben.

        Habe es rausgenommen und siehe da, es funktioniert.

        Gruß,
        cerry

        Comment


        • #5
          @cerry

          schön


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

          Comment


          • #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

            Comment


            • #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.

              Comment


              • #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...

                Comment


                • #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.

                  Comment


                  • #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.

                    Comment


                    • #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...

                      Comment


                      • #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

                        Comment

                        Working...
                        X