SQL-SELECT mit Variable: Wo steckt der Fehler???

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

  • SQL-SELECT mit Variable: Wo steckt der Fehler???

    Hallo Leute,

    sry das ich jetzt schon wieder mit so einem doofen Problem komme, aber ich häng seit 2Tage an ca: 10 Zeilen Code fest und komme nicht weiter...

    Es geht um folgendes: Ich möchte aus einer Tabelle eine Id anhand eines vordefinierten Namens abfragen.
    Ca. so...

    Tabelle groups
    Id || Name
    ---------------
    1 || gruppe1
    2 || gruppe2
    3 || gruppe3



    PHP-Code:
    $id '@gruppe1';     // das @ muss drinstehen, ist halt so....:-) ist aber eh wurschd, wird weggeparst
    $tag 'rw';
    if (
    substr($id01) == '@')
    {
        
    $sTempId $id;
        
    $ln strlen($sTempId)-1;
        
    $sTempId substr($sTempId1$ln);
        echo 
    "Group: ".$sTempId;
        echo 
    " (".$tag.")<br>";

        
    //Group_Id entsprechend des aktuellen ids holen
        ///////////////////////////////////////////////////
        
    $sql_get_gid "SELECT Group_Id FROM svnfile.groups WHERE Group_Name='".$sTempId."';";
                    
        
    $result_get_gid mysql_query ($sql_get_gid);
        if (!
    $result_get_gid){die('Ungueltige Abfrage: ' mysql_error());}
        
    $row mysql_fetch_assoc($result_get_gid);
        
    $Group_Id $row['Group_Id'];
        echo 
    "Group_ID: ".$Group_Id."<br>";
    }
    else
    {
        
    $temp_id $id;
        echo 
    "User: ".$temp_id;
        echo 
    " (".$tag.")<br>";

    Allerdings kommt da nix zurück.....das row ist leer! Am Code und an der SQL-Anfrage kanns nicht liegen (oder doch?), die hab ich schon1000mal durchgekuckt. Hab ich evtl ein Logik-Fehler?

    Wär super wenn ihr mir helfen könnt!

    Cheers
    Zuletzt geändert von KrazyKingKool; 06.09.2007, 09:48.

  • #2
    Testausgaben?
    Fehlerausgaben?

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Keine Fehlerausgaben!

      Testausgaben sind absolut wirr!

      So wie's jetzt hier steht, kommt einmal eine Zahl zurück (im print_r), die allerdings nicht der Id entspricht und ein andern mal kommt leer zurück!

      PHP-Code:
                      $id '@phr-intern';     // das @ muss drinstehen, ist halt so....:-)
                      
      $tag 'rw';
                      if (
      substr($id01) == '@')
                      {
                          
      $sTempId $id;
                          
      $ln strlen($sTempId)-1;
                          
      $sTempId substr($sTempId1$ln);
                          echo 
      "Group: ".$sTempId;
                          echo 
      " (".$tag.")<br>";

                          
      //Group_Id entsprechend des aktuellen ids holen
                          ///////////////////////////////////////////////////
                          
      $sql_get_gid "SELECT Group_Id FROM svnfile.groups WHERE Group_Name='".$sTempId."';";
                          echo 
      "SQL: ".$sql_get_gid."<br>";

                          
      $result_get_gid mysql_query ($sql_get_gid);
                          if (!
      $result_get_gid){die('Ungueltige Abfrage: ' mysql_error());}

                          echo 
      "result_get_id: ".$result_get_gid."<br>";

                          
      $row mysql_fetch_assoc($result_get_gid);

                          echo 
      "row: ".$row."<br>";

                          
      print_r ($row);
                          echo 
      "<br>";
                          
      $Group_Id $row['Group_Id'];
                          echo 
      "Group_ID: ".$Group_Id."<br>";
                      }
                      else
                      {
                          
      $temp_id $id;
                          echo 
      "User: ".$temp_id;
                          echo 
      " (".$tag.")<br>";
                      } 

      Kommentar


      • #4
        Ich würd das @ zeichen einfach mit str_replace() rausnehmen.Da es eh nur um das @ zeichen geht.

        PHP-Code:
        str_replace("@","",$id
        Mfg Splasch

        Kommentar


        • #5
          Das ist Jacke wie Hose...ändert nichts imho.

          Ich habs halt umständlicher gemacht Es steht ja trotzdem das Richtige in der Variable nach der Umwandlung

          PHP-Code:
          echo "Group: ".$sTempId

          Kommentar


          • #6
            Original geschrieben von KrazyKingKool
            Testausgaben sind absolut wirr!

            So wie's jetzt hier steht, kommt einmal eine Zahl zurück (im print_r), die allerdings nicht der Id entspricht und ein andern mal kommt leer zurück!
            Und warum ist das so?
            Query mal ausgeben lassen und manuell in PMA ausgeführt?

            Du musst das Problem schon selbst eingrenzen...

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Original geschrieben von ghostgambler
              Und warum ist das so?
              Keine Ahnung...deswegen bin ich ja hier

              Original geschrieben von ghostgambler

              Query mal ausgeben lassen und manuell in PMA ausgeführt?
              'Türlich....da kommt die passende Id zurück, stimmt alles! Auch mit MSQL Query Browser.
              edit: In der Query steht ja der richtige Abfragestring drin
              -->
              PHP-Code:
              ...WHERE Group_Name='gruppe1'
              Original geschrieben von ghostgambler

              Du musst das Problem schon selbst eingrenzen...
              ....wenn ich wüsste wie??
              Zuletzt geändert von KrazyKingKool; 06.09.2007, 11:25.

              Kommentar


              • #8
                hi

                benutz mal var_dump(), und error_reporting(E_ALL).

                dann schau dir nochmal die ausgabe an.

                falls du die nicht kennst: php.net/funktionsname.

                Kommentar


                • #9
                  Bringt auch nix. bei var_dump($row); kommt nichts raus, bei print_r ($row); kommt NULL

                  Kommentar


                  • #10
                    Hast du, wie bereits vorgeschlagen, versucht, die Query direkt mit einem Abfragetool auszuführen?

                    Beinhaltet deine Tabelle überhaubt Daten?

                    Kommentar


                    • #11
                      Original geschrieben von ThemBones
                      Hast du, wie bereits vorgeschlagen, versucht, die Query direkt mit einem Abfragetool auszuführen?

                      Beinhaltet deine Tabelle überhaubt Daten?
                      Kuck mal drei Posts obendrüber
                      Zuletzt geändert von KrazyKingKool; 06.09.2007, 12:23.

                      Kommentar


                      • #12
                        PHP-Code:
                        <?php
                        error_reporting
                        (E_ALL); #
                        ini_set("display_errors""on"); #

                        $id '@phr-intern';
                        $tag 'rw';
                        if (
                        substr($id01) == '@')
                        {
                            
                        $sTempId $id;
                            
                        $ln strlen($sTempId)-1;
                            
                        $sTempId substr($sTempId1$ln);
                            echo 
                        "Group: ".$sTempId;
                            echo 
                        " (".$tag.")<br>";

                            
                        $sql_get_gid "SELECT Group_Id FROM svnfile.groups WHERE Group_Name='".$sTempId."';";
                            echo 
                        '<p>' htmlspecialchars($sql_get_gid) . '</p>'#
                            
                        echo "SQL: ".$sql_get_gid."<br>";

                            
                        $result_get_gid mysql_query ($sql_get_gid) or die(mysql_error()); #
                            
                        if (!$result_get_gid){die('Ungueltige Abfrage: ' mysql_error());}

                            echo 
                        "result_get_id: ".$result_get_gid."<br>";

                            
                        $row mysql_fetch_assoc($result_get_gid);
                            echo 
                        '<p><pre>' print_r($row1) . '</pre></p>'#

                            
                        echo "row: ".$row."<br>";

                            
                        print_r ($row);
                            echo 
                        "<br>";
                            
                        $Group_Id $row['Group_Id'];
                            echo 
                        "Group_ID: ".$Group_Id."<br>";
                        }
                        else
                        {
                            
                        $temp_id $id;
                            echo 
                        "User: ".$temp_id;
                            echo 
                        " (".$tag.")<br>";
                        }
                        Und das Ergebnis davon postest du mal bitte 1:1 hier hin

                        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                        Wie man Fragen richtig stellt

                        Kommentar


                        • #13
                          Path: /
                          ID: 1

                          Group: phr-intern (rw)

                          SELECT Group_Id FROM svnfile.groups WHERE Group_Name='phr-intern';
                          SQL: SELECT Group_Id FROM svnfile.groups WHERE Group_Name='phr-intern';
                          result_get_id: Resource id #14

                          row:

                          Group_ID:

                          Path: und ID: ganz oben sind aus einer anderen aber absolut identischen Abfrage. Da werden wir nur statt 'gruppe1' eben 'pfad1' abgefragt. Und da funktionierts ! Sehr strange !

                          Kommentar


                          • #14
                            was bringt ein
                            PHP-Code:
                            echo "result_get_id: ".$result_get_gid."<br>";
                            echo 
                            mysql_num_rows($result_get_gid); 
                            ?


                            Was bringt der Query hier
                            Code:
                            SELECT Group_Id FROM svnfile.groups WHERE Group_Name='phr-intern';
                            direkt in PMA?

                            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                            Wie man Fragen richtig stellt

                            Kommentar


                            • #15
                              PHP-Code:
                              echo "result_get_id: ".$result_get_gid."<br>"
                              bringt: result_get_id: Resource id #14



                              Und
                              PHP-Code:
                              echo "MYSQL NUM ROWS: ".mysql_num_rows($result_get_gid); 
                              bringt: MYSQL NUM ROWS: 0 !


                              Code:
                              SELECT Group_Id FROM svnfile.groups WHERE Group_Name='phr-intern';
                              bringt in PMA UND MYSQL QUERY BROWSER GENAU den gewollten Wert !! Da ist alles Paletti !!

                              Kommentar

                              Lädt...
                              X