Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] 1. Zeile wird nicht ausgegeben

Einklappen

Neue Werbung 2019

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

  • [Erledigt] 1. Zeile wird nicht ausgegeben

    Hey Leute
    ich habe in PHP eine Seite geschrieben, die sich mit einer Oracle Datenbank verbindet, dort Abfragen durchführt und die Ergebnisse anzeigt.
    Man kann dort bestimmte Abfragen durchführen.
    Es gibt nur leider ein Problem
    bei der Ausgabe der Tabelle wird immer die 1. Zeile vollkommen ignoriert
    also zeigt der an, wenn es nur einen Datensatz gibt, dass es keine Datensätze gibt

    hier der Code:
    Javascripts
    PHP-Code:
    function ID()
    {
        var 
    element document.getElementById("text");
        var 
    element2 document.getElementById("label");
        var 
    element3 document.getElementById("send");
        
    element2.firstChild.nodeValue 'Geben Sie eine ID ein: ';
        
    element.style.display "";
        
    element2.style.display "";
        
    window.form1.text.focus();
    }
    function 
    Name()
    {
        var 
    element document.getElementById("text");
        var 
    element2 document.getElementById("label");
        var 
    element3 document.getElementById("send");
        
    element2.firstChild.nodeValue 'Geben Sie einen Namen (bzw. Anfangsbuchstabe) ein: ';
        
    element.style.display "";
        
    element2.style.display "";
        
    window.form1.text.focus();
    }

    function 
    Job()
    {
        var 
    element document.getElementById("text");
        var 
    element2 document.getElementById("label");
        var 
    element3 document.getElementById("send");
        
    element2.firstChild.nodeValue 'Geben Sie eine Jobbezeichnung (bzw. Anfangsbuchstabe) ein: ';
        
    element.style.display "";
        
    element2.style.display "";
        
    window.form1.text.focus();
    }
    function 
    Ort()
    {
        var 
    element document.getElementById("text");
        var 
    element2 document.getElementById("label");
        var 
    element3 document.getElementById("send");
        
    element2.firstChild.nodeValue 'Geben Sie einen Standort (bzw. Anfangsbuchstabe) ein: ';
        
    element.style.display "";
        
    element2.style.display "";
        
    window.form1.text.focus();
    }
    function 
    display2()
    {
        var 
    element document.getElementById("text");
        var 
    element2 document.getElementById("label");
        var 
    element3 document.getElementById("send");
        
    element.style.display "none";
        
    element2.style.display "none";
        
    document.form1.submit();
    }
    </script> 
    Funktionen:
    PHP-Code:
    function formular()
    {
        echo 
    '<form action="" method = "POST" name="form1"><p>W&aumlhlen Sie ihre Suche aus:</p><p><select name="Suche" size="16" >
                <optgroup label="Mitarbeiter:">
                    <option label="EMPNO" onclick="ID();" >nach ID</option>
                    <option label="ENAME" onclick="Name();" >nach Name</option>
                    <option label="JOB" onclick="Job();" >nach Beruf</option>
                    <option label = "ALL" onclick="display2();"> Alle Mitarbeiter anzeigen</option>
                </optgroup>
                <optgroup label="Abteilung">
                    <option label="DEPTNO" onclick="ID();">nach Abteilungsnummer</option>
                    <option label="LOC" onclick="Ort();">nach Standort</option>
                    <option label = "AllD" onclick="display2();"> Alle Abteilungen anzeigen</option>
                </optgroup>
                <optgroup label = "spezielles Suchen:">
                    <option label = "job1" onclick="display2();">welche Berufe sind auf welchem Standort verteilt</option>
                    <option label = "job2" onclick="display2();">Wieviele Mitarbeiter gibt es zu welchem Beruf</option>
                    <option label = "job3" onclick="Job();">Anzahl der Mitarbeiter zu einem bestimmten Beruf</option>
                    <option label = "job4" onclick="Ort();">Welche Mitarbeiter sind auf welchem Standort vertreten</option>
                    <option label = "job5" onclick="Name();">Welche Mitarbeiter sind in welcher Abteilung</option>
                </select></p><label id="label" for="text" style="display:none">Test</label><br /><input type="text" id = "text" name = "text" style="display:none" /><input type="submit" id="send" style="display:none"</form>'
    ;
    }

    function 
    sqlConnect($mySQL)
    {
        global 
    $stat;
        
    $con oci_connect'user'  ,'password' 'database') or die ("Keine DB Verbindung!");
        
    $stat oci_parse($con$mySQL);
        
    oci_execute($stat);
        
    table($stat);
    }
        
    function 
    table($stat)
    {
        global 
    $stat;
        global 
    $array;
        
    $counter 0;
        echo 
    "<table border='1'>\n";
        echo 
    "<tr>\n";
    //Spalten ausgabe
        
    $array array_keys(oci_fetch_array($statOCI_ASSOC+OCI_RETURN_NULLS));
        for(
    $i=0$i<10$i++)
        {
            if(isset(
    $array[$i]))
            {
                echo 
    "<th>";
                echo 
    $array[$i];
                echo 
    "</th>";
            }
        }
        
        echo 
    "</tr>\n";
    //Datenausgabe
        
    while ($row oci_fetch_array($statOCI_ASSOC+OCI_RETURN_NULLS) ) 
        {
            
    $counter ++;
            echo 
    "<tr>\n";
            foreach (
    $row as $item)
            {
                echo 
    "    <td>" . ($item !== null htmlentities($itemENT_QUOTES) : "&nbsp;") . "</td>\n";
            }
            echo 
    "</tr>\n";
        }
        echo 
    "</table>\n<br />";
        
    $array '';
        if(
    $counter==0)
        {
            echo 
    "Keine Daten gefunden!<br />";
        }
        echo 
    '</br> nach 1min wird die Anzeige gel&oumlscht</br>';
        echo 
    '<meta http-equiv="refresh" content="60;url=testSearch.php">';

    Hauptteil:
    PHP-Code:
    echo '<div align = "center" >';
    formular();

    if(
    $_SERVER['REQUEST_METHOD']=='POST')
    {
        if(empty(
    $_POST['Suche']))
        {
            
    $err[]="xxxxxx";
        }else
        {
            switch(
    $_POST['Suche']){
                    case 
    'Alle Mitarbeiter anzeigen':
                        
    $mySQL "SELECT * FROM EMP";
                        
    sqlConnect($mySQL);
                        break;
                    case 
    'Alle Abteilungen anzeigen':
                        
    $mySQL 'SELECT * FROM DEPT';
                        
    sqlConnect($mySQL);
                        break;
                    case 
    'welche Berufe sind auf welchem Standort verteilt':
                        
    $mySQL 'SELECT e.JOB, d.LOC FROM EMP e, DEPT d WHERE d.DEPTNO = e.DEPTNO GROUP BY d.LOC, e.JOB ORDER BY e.JOB';
                        
    sqlConnect($mySQL);
                        break;
                    case 
    'Wieviele Mitarbeiter gibt es zu welchem Beruf':
                        
    $mySQL 'SELECT JOB, COUNT(JOB) AS Anzahl FROM EMP GROUP BY JOB';
                        
    sqlConnect($mySQL);
                        break;
                    
            }
        }
    }

    if(isset(
    $_POST['text']))
            {
                
    $search $_POST['text'];
                switch(
    $_POST['Suche'])
                {
            
                    case 
    'nach ID':
                        if(
    $_POST['text'] == "" )
                        {
                            echo 
    'Bitte geben Sie etwas ins Feld ein. Es sind nur Zahlen von 0 bis 9 erlaubt.';
                        }else if (
    preg_match("#^[0-9]+$#"$_POST['text']) == false)
                        {
                            echo 
    'Ung&uumlltige Zeichen';
                            
                        }else
                        {
                            
    $mySQL "SELECT * FROM EMP WHERE EMPNO LIKE UPPER('".mysql_real_escape_string($search)."%')";
                            
    sqlConnect($mySQL);
                        }
                        break;
                    case 
    'nach Name':
                        if(
    $_POST['text'] == "")
                        {
                            echo 
    'Bitte geben Sie etwas ins Feld ein';
                        }else if (
    preg_match("#^[a-zA-Z]+$#"$_POST['text']) == false)
                        {
                            echo 
    'Ung&uumlltige Zeichen';
                            
                        }else
                        {
                            
    $mySQL "SELECT * FROM EMP WHERE ENAME LIKE UPPER('".mysql_real_escape_string($search)."%')";
                            
    sqlConnect($mySQL);
                        }
                        break;
                    case 
    'nach Beruf':
                        if(
    $_POST['text'] == "")
                        {
                            echo 
    'Bitte geben Sie etwas ins Feld ein';
                        }else if (
    preg_match("#^[a-zA-Z]+$#"$_POST['text']) == false)
                        {
                            echo 
    'Ung&uumlltige Zeichen';
                            
                        }else
                        {
                            
    $mySQL "SELECT * FROM EMP WHERE JOB LIKE UPPER('".mysql_real_escape_string($search)."%')";
                            
    sqlConnect($mySQL);
                        }
                        break;
                    
                    case 
    'nach Abteilungsnummer':
                        if(
    $_POST['text'] == "")
                        {
                            echo 
    'Bitte geben Sie etwas ins Feld ein';
                        }else if (
    preg_match("#^[0-9]+$#"$_POST['text']) == false)
                        {
                            echo 
    'Ung&uumlltige Zeichen';
                            
                        }else
                        {
                            
    $mySQL "SELECT * FROM DEPT WHERE DEPTNO LIKE UPPER('".mysql_real_escape_string($search)."%')";
                            
    sqlConnect($mySQL);
                        }
                        break;
                    case 
    'nach Standort':
                        if(
    $_POST['text'] == "")
                        {
                            echo 
    'Bitte geben Sie etwas ins Feld ein';
                        }else if (
    preg_match("#^[a-zA-Z]+$#"$_POST['text']) == false)
                        {
                            echo 
    'Ung&uumlltige Zeichen';
                        }else
                        {
                            
    $mySQL "SELECT * FROM DEPT WHERE LOC LIKE UPPER('".mysql_real_escape_string($search)."%')";
                            
    sqlConnect($mySQL);
                        }
                        break;
                    
                    case 
    'Anzahl der Mitarbeiter zu einem bestimmten Beruf':
                        if(
    $_POST['text'] == "")
                        {
                            echo 
    'Bitte geben Sie etwas ins Feld ein';
                        }else if (
    preg_match("#^[a-zA-Z]+$#"$_POST['text']) == false)
                        {
                            echo 
    'Ung&uumlltige Zeichen';
                        }else
                        {
                            
    $mySQL "SELECT JOB, COUNT(JOB) AS Anzahl FROM EMP WHERE JOB LIKE UPPER('".mysql_real_escape_string($search)."%') GROUP BY JOB";
                            
    sqlConnect($mySQL);
                        }
                        break;
                    case 
    'Welche Mitarbeiter sind auf welchem Standort vertreten':
                        if(
    $_POST['text'] == "")
                        {
                            echo 
    'Bitte geben Sie etwas ins Feld ein';
                        }else if (
    preg_match("#^[a-zA-Z]+$#"$_POST['text']) == false)
                        {
                            echo 
    'Ung&uumlltige Zeichen';
                            
                        }else
                        {
                            
    $mySQL "SELECT d.LOC, e.EMPNO, e.ENAME, e.JOB FROM DEPT d, EMP e WHERE d.DEPTNO = e.DEPTNO AND d.LOC LIKE UPPER('".mysql_real_escape_string($search)."%') ";
                            
    sqlConnect($mySQL);
                        }
                        break;
                    case 
    'Welche Mitarbeiter sind in welcher Abteilung':
                        if(
    $_POST['text'] == "")
                        {
                            echo 
    'Bitte geben Sie etwas ins Feld ein';
                        }else if (
    preg_match("#^[a-zA-Z]+$#"$_POST['text']) == false)
                        {
                            echo 
    'Ung&uumlltige Zeichen';
                            
                        }else
                        {
                            
    $mySQL "SELECT d.DNAME, e.EMPNO, e.ENAME, e.JOB FROM DEPT d, EMP e WHERE d.DEPTNO = e.DEPTNO AND d.DNAME LIKE UPPER('".mysql_real_escape_string($search)."%') ORDER BY JOB";
                            
    sqlConnect($mySQL);
                        }
                            break;
                }
            } 
    ist alles in einer Datei
    vielleicht habt ihr eine Idee wo genau mein Denkfehler ist
    häng an dem Problem schon einigen Tagen und bin mit meinem Latein am Ende
    sorry wenn der Code ein wenig unübersichtlich ist
    aber ich bin noch ein ziemlicher Anfänger bei PHP
    hab erst vor kurzem angefangen

  • #2
    Weil du den ersten Datensatz nimmst, daraus die Felder als Tabellenkopf ausgibst und die Daten verwirfst.

    Kommentar


    • #3
      also müsste ich quasi 2mal die Abfrage machen oder wie?

      Kommentar


      • #4
        Wenn dir nix besseres einfällt... Ich würde aber vielleicht erstmal versuchen die Daten nicht zu verwerfen oder alternativ in der Dokumentation der Schnittstelle zu schauen ob man die Felder nicht auch anderes bekommt.

        Kommentar


        • #5
          danke für die Hilfe

          Kommentar

          Lädt...
          X