Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme, Arrays richtig zu füllen

Einklappen

Neue Werbung 2019

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

  • Probleme, Arrays richtig zu füllen

    Hallo zusammen,

    ich habe offenbar grundlegende Probleme mit den ein- und auslesen von Arrays in Verbindung mit Abfragen einer Oracle-Datenbank.

    Zur Erläuterung:

    Ich habe 2 Tabellen: Gruppennamen (beinhaltet eine Anzahl an Namen) und Mitarbeiter (jeder MA besitzt eine eindeute ID_Mitarbeiter).

    Die Gruppennamen können variieren, daher lese ich in der ersten Schleife alle Namen aus und speichere sie in einem Array (die Namen will ich später der Reihe nach auch wieder auslesen können).

    In der zweiten Schleife zähle ich in jeder Gruppe die Anzahl der enthaltenen Mitarbeiter und speichere auch diese in ein Array.

    Nach dem Durchlauf beider Schleifen möchte ich nun auf die beiden Arrays $row und $row2 zugreifen und die gespeicherten Werte in Kombination ausgeben können (auch außerhalb der Schleife).

    Aber das funktioniert irgendwie nicht so, wie ich das möchte. Was kann ich ändern?

    Hier mein "Pseudocode":
    PHP-Code:
                    $grpnamen = array();
                    
    $row = array();
                    
    $row2= array();

     
                    
    $sql_string "SELECT GRUPPENNAME FROM GRUPPENNAMEN ";
                    
    $stmnt oci_parse ($conn$sql_string);
                    
    oci_execute($stmnt);



                    while (
    $row oci_fetch_array($stmntOCI_BOTH))
                    {
                    
    $grpnamen[] = $row[0];
                    echo 
    "Grupennname: $row[0]";
                    }


                    foreach(
    $grpnamen as $item)   // Für jede Gruppe die Anzahl der Mitarbeiter abfragen
                    
    {
     
                    
    $sql_string "SELECT COUNT(ID_Mitarbeiter) FROM Mitarbeiter ";
                    
    $stmnt2 oci_parse ($conn$sql_string);
                    
    oci_execute($stmnt2);  

                    
    $row2[]= oci_fetch_statement($stmnt2OCI_BOTH);
                    
                    echo 
    "$row2[0]"

                   }

                    echo 
    "Gruppe $row[0] hat $row2[0] Mitarbeiter";          //Ausgabe Wert 1 im Array
                    
    echo "Gruppe $row[1] hat $row2[1] Mitarbeiter";          //Ausgabe Wert 2 im Array
                    
    echo "Gruppe $row[2] hat $row2[2] Mitarbeiter";          //Ausgabe Wert 3 im Array 

  • #2
    Das sollte alles über eine einzige Abfrage möglich sein.
    Dafür müsstest Du allerdings mal den exakten Aufbau Deiner beiden Tabellen zeigen und Deinen wirklichen Code zeigen. Anhand von Pseudocode, können wir wohl schwer sagen, was Du wirklich besser machen könntest.
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      $sql_string = "SELECT COUNT(ID_Mitarbeiter) FROM Mitarbeiter ";


      Du hast hier gar keine Verknüpfung zur Gruppe....


      Gruß

      DasEm
      <- beantwortet am liebsten Oracle-Fragen

      Kommentar


      • #4
        Guckst Du Dir das so genau an?
        Ich habe mir das gespart, weil es eh nicht der Code ist, den er wirklich einzusetzen scheint:
        Hier mein "Pseudocode":
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Zitat von Arne Drews Beitrag anzeigen
          Guckst Du Dir das so genau an?
          Ich habe mir das gespart, weil es eh nicht der Code ist, den er wirklich einzusetzen scheint:
          Nö. Das hüpfte mir förmlich ins Auge.
          <- beantwortet am liebsten Oracle-Fragen

          Kommentar


          • #6
            Stimmt... Müsste eh alles nochmal durchdacht werden, weil => SQL-Query innerhalb von foreach === bad way...
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Mein Gott...

              Den Begriff 'Pseudocode' habe ich doch nicht ohne Grund in Anführungszeichen geschrieben. Dieser Code ist genau so mein Code, wie ich ihn ausprobiert habe. Er funktioniert einfach nicht. Ansonsten hätte ich geschrieben "Dies ist mein lauffähiger Code".

              Tatsächlich habe ich einen Tipp wie von Arne Drews erwartet. Bad Way also... aber wie kann ich das ändern?

              Bitte nur antworten, wenn wirklich die Bereitschaft zur Hilfe auch wirklich vorhanden ist. Ich bin Anfänger in diesem Gebiet und habe nicht die Kraft mich mit Profis auf Kraftspiele einzulassen.

              Kommentar


              • #8
                Den Begriff 'Pseudocode' habe ich doch nicht ohne Grund in Anführungszeichen geschrieben. Dieser Code ist genau so mein Code, wie ich ihn ausprobiert habe. Er funktioniert einfach nicht. Ansonsten hätte ich geschrieben "Dies ist mein lauffähiger Code".


                Das Gegenteil von "lauffähiger Code" wäre "fehlerhafter" bzw. "nicht lauffähiger Code".
                Pseudocode definiert einen Ablaufcode, der verständlich den Weg darstellen soll, dabei aber auf korrekte Syntax verzichtet.

                Tatsächlich habe ich einen Tipp wie von Arne Drews erwartet. Bad Way also... aber wie kann ich das ändern?
                Bitte nur antworten, wenn wirklich die Bereitschaft zur Hilfe auch wirklich vorhanden ist. Ich bin Anfänger in diesem Gebiet und habe nicht die Kraft mich mit Profis auf Kraftspiele einzulassen.
                Wenn Du hierzu
                Zitat von Arne Drews
                Dafür müsstest Du allerdings mal den exakten Aufbau Deiner beiden Tabellen zeigen...
                auch keine Kraft hast, können wir Dir nicht viel weiterhelfen, ganz egal, wie sehr uns das ein Herzenswunsch ist.
                Competence-Center -> Enjoy the Informatrix
                PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                Kommentar


                • #9
                  Wenn schon die Datenbankabfragen falsch sind, brauch ich den Rest gar nicht mehr zu lesen.

                  Du zählst immer alle Mitarbeiter.
                  <- beantwortet am liebsten Oracle-Fragen

                  Kommentar

                  Lädt...
                  X