Problem mit Datenbank-Verbindung und function

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

  • Problem mit Datenbank-Verbindung und function

    Also ich habe folgendes Problem und auch die Suche in diesem Forum hat mich nicht schlauer gemacht. Lasse am Anfang meines Scriptes eine Verbindung mit der DB herstellen und möchte dann in einer Funktion eine Abfrage starten. Doch die Abfrage funktioniert nicht. Erst wenn das include in der function steht, geht's. Möchte nun aber weitere Funktionen nutzen, die auf die Verbindung zur Datenbank zurückgreifen. Unter http://www.php-resource.de/forum/sho...ank+verbindung steht, dass es funktioniert, wenn ich die Verbindung zur DB mittels include oder require am Anfang einbinde. Hier mal mein Script:
    PHP-Code:
    include ("dbconnect.php");
    function 
    lesedaten ($nummer)
    {
        echo 
    $nummer "<br>";
        
    $sql_select "SELECT * FROM mitarbeiter WHERE Nummer = " $nummer;
        
    // Die Anfrage wird an die Datenbank gesendet
        
    $result mysql_query ($sql_select$db);
        if (
    $result)
        {
            echo 
    "Abfrage erfolgreich.<br>";
        }
        else
        {
            echo 
    "Abfrage nicht erfolgreich.<br>";
            if (
    mysql_errno($db))
            {
                echo 
    mysql_error($db);
            }
        }
        
    // Es werden die Anzahl der Datensätze ermittelt
        
    $anzahl mysql_num_rows ($result);
        
    // Die Anzahl wir ausgegeben
        
    echo $anzahl " Mitarbeiter selber geworben.<br>";
    }
    $nummer 100;
    lesedaten ($nummer); 
    Wenn ich das Script wie oben beschrieben ausführe, bekomme ich als Ausgabe:
    Code:
    100
    Abfrage nicht erfolgreich.
    Mitarbeiter selber geworben.
    Ist das include innerhalb der function, ist die Abfrage erfolgreich und ich kann mit den Daten arbeiten.
    Wo liegt der Fehler, wenn es überhaupt einen gibt?

    danke im voraus
    ralf

  • #2
    $db wird in der dbconnect.php definiert. richtig?

    wie soll denn die fkt diesen variable nun kennen?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Re: Problem mit Datenbank-Verbindung und function

      Original geschrieben von richtsteiger
      Ist das include innerhalb der function, ist die Abfrage erfolgreich und ich kann mit den Daten arbeiten.
      gehen wir einfach davon aus, das deine function die werte der anderen function, welche die verbindung zur datenbank herstellt, nicht kennt.

      gehen wir weiter davon aus, dass du fehlermeldungen bekommen würdest, wenn du hinter jedem code-bestandteil, der mit mysql_... zu tun hat ein
      PHP-Code:
       or die ('mysql_error'
      setzen würdest.

      -> lösung: anhand der 'vermutlichen' fehlermeldung feststellen, dass dein script keine verbindung zur datenbank hat und das script insoweit anpassen, das die 'verbindungsvaribale' deiner ersten function auch in der zeiten, diesen zur verfügung steht, entweder als referzparameter, globale variable, sessionvariable oder was auch immer.

      ps: immer mal wieder mit echo den variableninhalt ausgeben lassen und schauen, wo sich was verändert.
      EDIT:
      ich tipp zu langsam

      Kommentar


      • #4
        im boden versink

        @Abraxax
        Manchmal sieht man den Wald vor Bäumen nicht. Danke für die schnelle Antwort und sorry für die kostbare Zeit, die ich dir geraubt habe.

        @jochenj
        habe in der dbconnect.php die Variable $db auch mal als globale Variable deklariert. hat aber nicht's gebracht, sprich es ging auch nicht.

        Kommentar


        • #5
          dann probier es mal mit referenzparameter

          function name (&$variablenname)
          ......

          Kommentar


          • #6
            Hallo jochenj,

            habe die Variable $db als Parameter an die function übergeben und siehe da, es geht.

            Also danke noch mal und ciao
            ralf

            EDIT:

            Die Parameter-Übergabe nutze ich nun nicht mehr, sondern setz in die erste Zeile jeder Funktion, die 'ne Datenbankanbindung benötigt, ein
            PHP-Code:
            global $db
            Funktioniert prima und ich spar mir dadurch jedesmal beim Aufruf die Übergabe des Parameters - Fehler durch vergessenen Parameter sind dadurch ausgeschlossen.

            Zuletzt geändert von richtsteiger; 02.12.2004, 14:34.

            Kommentar

            Lädt...
            X