[PHP5] Resource id an Funktion übergeben

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

  • [PHP5] Resource id an Funktion übergeben

    Hi an alle PHP'ler

    wahrscheinlich werde ich mich fürchterlich blamieren, aber da ich blutiger Anfänger bin werdet Ihr mir hoffentlich verzeihen!
    mein Problem:

    $sql ="SELECT * FROM db";
    $id=mysql_query($sql, $conn);
    arbeit($id)

    function arbeit($id)
    {
    echo $id; // Bildschirmausgabe: Resource id #5
    $ary=mysql_fetch_array($id, MYSQL_ASSOC);
    echo $ary[vari];
    }

    wenn ich $id an eine Funktion übergebe erhalte ich kein Ergebnis, ohne Funktion ist alles OK.
    Kann ich das überhaupt so machen, oder muß ich zuerst mit mysql_fetch_array das Suchergebnis in ein Array umwandeln und dieses an die Funktion übergeben.
    Vielen Dank für Eure Bemühungen
    Olaf

  • #2
    probier das mal. (ohne garantie)

    PHP-Code:
    function arbeit(&$id)
    {
        echo 
    $id// Bildschirmausgabe: Resource id #5
        
    $ary mysql_fetch_array($idMYSQL_ASSOC);
        echo 
    $ary[vari];
    }

    $sql "SELECT * FROM db";
    $id  mysql_query($sql$conn);

    arbeit($id); 
    ps. im übrigen macht dein vorhaben in dieser form sowieso keinen sinn ...
    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
      warum keinen Sinn?

      erst mal vielen Dank für Deine schnelle Antwort,

      funktioniert allerdings auch nicht.

      Doch nun zu Deiner Aussage: macht sowieso keinen Sinn

      ich will ja in der Funktion nicht nur eine Bildschirmausgabe, sondern mit dem Suchergebnis weiterarbeiten, und dachte mir es währe einfacher nur die ID zu übergeben

      ist das falsch?

      Kommentar


      • #4
        is db ne Datenbank oder eine tabelle ?

        ich hoffe mal eine Tabelle, nicht dass du versuchst ne datenbank abzufragen


        An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

        Kommentar


        • #5
          ups, ne Tabelle

          funktioniert ja auch so ohne die Übergabe an eine Funktion

          Kommentar


          • #6
            Re: warum keinen Sinn?

            Original geschrieben von olango
            funktioniert allerdings auch nicht.
            natürlich funz! Irgendwas machst du falsch! Wie hast du festgestellt, dass es nicht funz? Zeige mal den Code.

            Kommentar


            • #7
              hier mein Quelltext
              doch bitte geb mir auch ne antwort auf deinen Komentar, nicht das ich total auf dem Holzweg bin

              PHP-Code:
              function check_login($login_user$passw)
              {
                  
              $conn=openDB();
                  
              $sql="SELECT * FROM login WHERE user='$login_user'";
                  
              $login_dbid=mysql_query($sql$conn);
                  
              $login_ary=mysql_fetch_array($login_dbidMYSQL_ASSOC);
                  if(! 
              $login_ary[user]) //User nicht vorhanden
                  
              {
                      echo 
              "Ihr Username ist falsch<br>bitte versuchen Sie es erneut<br><a href='$PHP_SELF?aktion=login'>weiter</a>";
                  }
                  elseif(
              $login_ary[news_edit] != "y")
                  {
                      echo 
              "Sie haben keine Berechtigung<br><a href='$PHP_SELF?aktion=login&login_user=$login_user'>weiter</a>";
                  }
                  elseif(
              $login_ary[passw] != "$passw")
                  {
                      echo 
              "Ihr Password ist falsch<br><a href='$PHP_SELF?aktion=login&login_user=$login_user'>weiter</a>";
                  }
                  else
                  {
                      echo 
              "$login_dbid die erste<br>";
                      
              ndl_select($login_dbid);
                  }
              }

              function 
              ndl_select($login_dbid)
              {
                  echo 
              "$login_dbid die zweite<br>";
                  
              $login_inhalt=mysql_fetch_array($login_dbidMYSQL_ASSOC);
                  echo 
              "$login_inhalt[user]<br>";

              Kommentar


              • #8
                du hast eine ressource-id und zwei mysql_fetch_array (eines pro funktion)

                das erste mysql_fetch_array liefert dir den ersten datensatz, das zweite den zweiten

                da ich nicht davon ausgehe, dass in deiner login-tabelle ein benutgzer mehr als einmal aufgeführt ist, wird es wohl keinen zweiten datensatz geben

                entweder du übergibst $login_ary oder du schaust dir mysql_data_seek an
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  ergänzend zu mrhappiness's Posting:

                  Schau dir mal dein If ... elseif ... else Konstruk an. Wenn kein Username existiert, was willst du denn dann mit den restlichen elseif und else mit der gleichen Abfrage bzw. mit den Daten der ohnehin ungültigen Abfrage anfangen?

                  zum Fehler:

                  wenn if und elseif nicht greifen dann kommt else in Aktion, in else willst du dann den Usernamen ausgeben, welchen du ohnehin schon in If geprüft und festgestellt hast, dass der User nicht existiert.

                  Kommentar


                  • #10
                    Re: warum keinen Sinn?

                    Original geschrieben von olango
                    Doch nun zu Deiner Aussage: macht sowieso keinen Sinn
                    es macht keinen sinn eine fkt zu haben, welche ein statisches select an die db schickt und eine zweite fkt, welche die daten auswertet.

                    mache sowas in eine fkt damit es sinn ergibt, oder nutze die möglichkeiten der classen-programmierung (auch OOP genannt).

                    wenn du bspw. eine mysql-class hast, so kannst du diese immer wiederverwenden. aber in deinem fall empfehle ich dir, abfrage und auswertung selbiger in die gleiche fkt zu packen.
                    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

                    Lädt...
                    X