Paco: Funktion um ID eines Datensatzes auszulesen

Hallo!
Ich habe mal eine sehr simple Frage zum Thema mySQL aber vor allem PHP.

Ich möchte eine Funktion schreiben, um die ID eines Datensatzes herauszufinden, von dem ich einen Wert kenne. Bzw anschaulicher:

Tabelle Benutzer
ID | Name   | ...
---+--------+-----
 1 | Hans   |
 2 | Jochen |
 3 | Peter  |
 4 | Klaus  |

ich möchte jetzt einfach nur wissen, welche ID Hans hat und dann damit weiterarbeiten. Mein ansatz:

function getIdFromName($name) {
            $query = "SELECT id FROM Benutzer WHERE Name = '$name' ";
            $result = (mysql_query($query));
            $name_id = $result;
            return $name_id;
}

Habe glaub generell ein kleines Verständnisproblem was funktionen angeht. Die Variablen sind ja nur innerhalb der Funktion gültig. Wie komme ich an $name_id? Bzw an wen übergibt die Funktion mittels return $name_id?? Geht das grundsätzlich so?

Vielen Dank schonmal,

Paco

  1. Wie komme ich an $name_id? Bzw an wen übergibt die Funktion mittels return $name_id?? Geht das grundsätzlich so?

    return übergibt an die funktion selbst

    function foo() {  
      return 'hello world';  
    }
    

    folgendes beispiel ruft die funktion auf, nichts weiter passiert
    foo();

    folgendes gibt den rückgabewert der funktion aus
    echo foo();

    natürlich ist auch das möglich (kein rückgabewert, echo direkt von der funktion):

    function foo() {  
      echo 'hello world';  
    }  
    foo();  
    
    

    hast du schon mal überprüft, ob deine abfrage überhaupt irgendwas tut? ;)

  2. Hi,

    $result = (mysql_query($query));
                $name_id = $result;

    mysql_query liefert ein Resultset zurück. Niemals nur eine einzelne Zeile, und schon gar nicht nur ein einzelnes Datum. Du musst diesen Fall exakt so behandeln, als würdest Du siebzehn Milliarden Datensätze[1] mit je neunhundertdreiundsechzig Spalten erwarten.

    Cheatah

    [1] Von denen Du nur den ersten brauchst.

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hello,

      $result = (mysql_query($query));
                  $name_id = $result;

      mysql_query liefert ein Resultset zurück. Niemals nur eine einzelne Zeile, und schon gar nicht nur ein einzelnes Datum. Du musst diesen Fall exakt so behandeln, als würdest Du siebzehn Milliarden Datensätze[1] mit je neunhundertdreiundsechzig Spalten erwarten.

      [1] Von denen Du nur den ersten brauchst.

      und vielleicht[2] auch noch sicherstellen, dass es nur einen gibt!

      [2] je nach Aufgabenstellung und damit gefordertem Datenmodell

      Liebe Grüße aus Syburg bei Dortmund

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de