Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Kein Zugriff auf zwei DB-Tabellen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Kein Zugriff auf zwei DB-Tabellen

    Hi zusammen,

    ich hänge jetzt schon ein paar Stunden an dem Problem eines Zugriffes auf Daten aus zwei Tabellen.

    Die eine Tabelle heißt user und die andere heißt lager

    In user stehen in der Db beispielshalber die Werte

    _id=1 (hier habe ich den Primärschlüssel gesetzt und autoincr.)
    _username
    _pw
    _name=dummes

    In lager hab ich besispielsweise die Werte
    id=1
    _umsatz=12000€

    So weit so gut, wenn ich jetzt jedoch aus beiden Tabellen gleichzeitig selektierte Werte auslesen will, bekomm ich das nicht hin!

    Er wirft mir keinen Fehler aus, sondern bringt mich zu meiner Abbruchszeile:
    PHP-Code:

    if( mysql_num_rows($res) != ) { //liegt hier der Fehler wegen dem einen Datensatz!????
                  
    header'Location: http://xyz/loginfehler.html' );              
                  exit(); 
    Hier mal mein ganzer Codeblock den es betrifft:

    PHP-Code:
     $sql "SELECT 
                                _id,
                                _name, 
                                _umsatz
                               
                                  FROM         
                               user, lager
                               
                          WHERE
                               _username = '" 
    trim($_POST['username']) . "'
                          AND
                               _pw = '" 
    md5(trim($_POST['passwort'])) . "'
                          AND 
                                  user._id = lager.id"
    ;
                               
              
    $res mysql_query($sql) or die( 'Error[SELECT|User]: <br />
                                                               <pre>' 
    $sql '</pre>
                                                               <br />
                                                               MySQL-Error: ' 
    mysql_error() );
                  
        
              if( 
    mysql_num_rows($res) != ) { //liegt hier der Fehler??
                  
    header'Location: http://xyz/loginfehler.html' );              
                  exit();
              } 
              else {
                 
    // Der Schlüssel 'loggedIn' erhält den Wert 'true'. So kann überprüft später werden, 
                 // ob der User eingeloggt ist oder nicht.
                 
    $_SESSION['loggedIn'] = true;
                 
                 
    // Die userspezifischen Daten werden ausgelesen und der Session hinzugefügt

                
    $user mysql_fetch_object($res);
                
                
    $_SESSION["user_id"] = $user->_id
                
    $_SESSION["user_name"] = $user->_name
                
    $_SESSION["user_umsatz"] = $user->_umsatz
    Vielleicht sieht einer von euch einen Weg das so umzusetzen, oder ir einen Ratschlag zu geben, wie ich das besser lösen könnte!

    Danke vorab

    Grüße Olli

  • #2
    Lass dir halt mal die Abfrage ausgeben und teste diese mit einem SQL-Monitor. Da wirst du schnell sehen, ob genau eine Zeile zurück kommt:
    PHP-Code:
    $sql "
        SELECT 
            u._id,
            u._name, 
            l._umsatz
        FROM         
            user u,
        INNER JOIN 
            lager l ON u._id = l.id
        WHERE
            u._username = '" 
    trim($_POST['username']) . "'
        AND
            u._pw = '" 
    md5(trim($_POST['passwort'])) . "'";
            
    echo 
    "$sql<br />";    // ====>> Testausgabe
                               
    $res mysql_query($sql) or die("Error[SELECT|User]: <br />
                    <pre>
    $sql</pre><br />
                    MySQL-Error: " 
    mysql_error());
                  
    if( 
    mysql_num_rows($res) != ) { 
        
    header'Location: http://xyz/loginfehler.html' );              
        exit();

    else {
        ......
        

    Kommentar


    • #3
      $sql = "
      SELECT
      u._id,
      u._name,
      l._umsatz
      FROM
      user u,
      INNER JOIN
      lager l ON u._id = l.id
      WHERE
      u._username = '"
      . trim($_POST['username']) . "'
      AND
      u._pw = '"
      . md5(trim($_POST['passwort'])) . "'";

      echo
      "$sql<br />"; // ====>> Testausgabe

      Danach bekomm ich bei mir folgende Ausgabe!

      MySQL-Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN lager l ON u._id = l.id

      Und genau hier versteh ich nun net warum!

      Kommentar


      • #4
        was macht denn auch das komma da?

        Kommentar


        • #5
          Zitat von cycap Beitrag anzeigen
          was macht denn auch das komma da?
          Das muss so sein, um zu sehen, ob der TS die Abfrage überhaupt anschaut

          Kommentar


          • #6
            "Herr" schenk mir Hirn^^

            LOL, nun denn sieht jetzt alles wirklich blunaschön aus! Bekomm die Daten angezeigt und es ist tatsächlich nur ein Datensatz. Nur das Problem ist immer noch das selbe! Er schmeißt mich in den Loginfehler und arbeitet net die Sessionerstellung ab!

            Noch einer ne Idee?

            Kommentar


            • #7
              oder ir einen Ratschlag zu geben
              immer mysql_error () verwenden.

              Kommentar


              • #8
                oh man heut war net mein Tag seh ich gerade! Wenn natürlich durch das ganze hin und her in der lager-Tabelle kein Datensatz angelegt wurde, kann es wohl net klappen!

                Funktioniert nun wunderbar und ich danke für eure TRITTE

                Danke

                Kommentar

                Lädt...
                X