Updates werden nicht Richtig durchgeführt

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

  • Updates werden nicht Richtig durchgeführt

    Hallo ich habe folgendes Problem:

    so sieht die Tabelle in myadmin aus

    name id_abteilung
    Ändern Löschen SparePart 0
    Ändern Löschen Marketing 7
    Ändern Löschen Fertigung 16
    Ändern Löschen Personalabteilung 22

    ich will nun einen User in eine andere Abteilung verschieben, sparepart soll dabei nicht betrachtet werden (soll bei dem drop down menü garnicht erst erscheinen). das hab ich mit folgendem Code hinbekommen

    PHP-Code:
    <select name='cboAbteilung'>
    <?
        $db = mysql_connect('localhost' ,'inventory', '20074054');
        $res = mysql_db_query("inventory", "select * from Abteilung");

        echo "<option value=''>&nbsp;</option>\n";
    $i=0;
                while($row = mysql_fetch_array($res)){
                     echo "<option value='$row[id_abteilung]'";

        if ($row[id_abteilung] == $cboAbteilung)    
        {echo " selected ";}

        if($i != 0){
    echo ">$row[name]</option>\n";
    }$i++;}
        mysql_close($db);
        
    ?>
    </select>
    Dieser funktioniert einwandfrei. Nun mein Problem:

    Sobald ich den User in die Abteilung Marketing verschieben möchte, setzt er mir in die Datenbank bei id_abteilung 0. In jede andere ABteilung kann ich den Benutzer verschieben.
    Ich habe im Drop Down Menü auch schon die Ids statt der Namen ausgeben lassen und die stimmen auch mit den namen überein.

    Ach ja, vielleicht noch was. Die Abteilung Marketing wird im DropDown Menü als erstes aufgeführt.

    Ich weiß nicht, woran das liegen könnte, hat jemand von euch eine Idee?

    sorry hatte den update code vergessen

    PHP-Code:
    If ($strError == "") {
               
    $strSQL "SELECT id FROM tblSecurity WHERE userID='$strUserID' AND NOT id=".$editID;
               
    $result dbquery($strSQL);
               
    $intFound mysql_num_rows($result);
               If (
    $intFound != 0) {
                    
    $strError "That userID already exists.";
               } Else {
                    
    $strSQL "SELECT id FROM tblSecurity WHERE email='$strEmail' AND NOT id=".$editID;
                    
    $result dbquery($strSQL);
                    
    $intFound mysql_num_rows($result);
                    If (
    $intFound != 0) {
                         
    $strError "That email address already exists.";
                    } Else {
                         
    $strSQL "UPDATE tblSecurity SET userID='$strUserID', firstName='$strFirstName', middleInit='$strMiddleInit', lastName='$strLastName', email='$strEmail', securityLevel=$cboLevel, fk_abteilung=$intAbteilung WHERE id=".$editID;
                         
    $result dbquery($strSQL);
                         
    $strError "This account has been updated successfully.";
                    }
               }
          }
      } Else {
          
    $strSQL "SELECT userID, firstName, middleInit, lastName, email, securityLevel, fk_abteilung FROM tblSecurity WHERE id=".$editID;
          
    $result dbquery($strSQL);
          
    $row mysql_fetch_row($result);

          
    $strUserID $row[0];
          
    $strFirstName $row[1];
          
    $strMiddleInit $row[2];
          
    $strLastName $row[3];
          
    $strEmail $row[4];
          
    $cboLevel $row[5];
          
    $cboAbteilung $row[6];
      } 

  • #2
    Habe festgestellt, das Problem liegt irgendwo im ersten Code!!!!

    wo ich den sparePart ausgrenze.

    das problem beschränkt sich auf diesen Code:

    PHP-Code:
    <select name='cboAbteilung'>
    <?
        $db = mysql_connect('localhost' ,'inventory', '20074054');
        $res = mysql_db_query("inventory", "select * from Abteilung");

        echo "<option value=''>&nbsp;</option>\n";
    $i=0;
                while($row = mysql_fetch_array($res)){
                     echo "<option value='$row[id_abteilung]'";

        if ($row[id_abteilung] == $cboAbteilung)    
        {echo " selected ";}

        if($i != 0){
    echo ">$row[name]</option>\n";
    }$i++;}
        mysql_close($db);
        
    ?>
    </select>
    Zuletzt geändert von Schneggo; 23.09.2002, 09:35.

    Kommentar


    • #3
      setze i auf eins du nutzt eine fußgesteuerte Schleife dadurch wird i erst nach dem ersten Durchlauf auf eins gesetzt und der erste Punkt im Dropdownmenu ist auf 0 gesetzt...

      Kommentar


      • #4
        wenn ich i auf 1 setzte, dann gibt er mir den sparepart wieder mit aus, den brauch ich hier aber nicht.

        Kommentar


        • #5
          ich krieg jetzt dann gleich die krise. das kann doch nicht sein!!!

          warum erkennt er den ersten wert bei dem dropdown menü nicht?

          als erstes würde er normalerweise den sparepart auflisten, der entspricht dann sicherlich der null. aber in diesem fall entspricht marketing der 7.

          habe ausprobiert, ob es sich immer in den vorgänger verschiebt, sprich wenn ich den benutzer in fertigung verschiebst, dann müsste er ihn in marketing verschieben. negativ.

          alles funktioniert einwandfrei, nur an der ersten position liegt es.

          ich versteh das nicht.

          Kommentar


          • #6
            also ich habs jetzt so probiert

            PHP-Code:
            Function buildAbteilungSelect($intAbteilung$showSpare) {
                  
            # $strSQL   = "SELECT count(*) FROM Abteilung";
                  # $result   = dbquery($strSQL);
                  # $row      = mysql_fetch_row($result);
                  # $numAbteilung = $row[0];
                  # mysql_free_result($result);

                  # If ($numAbteilung > 70) {

                  # } Else {
                       
            $strSQL "SELECT name, id_abteilung FROM Abteilung";
                       
            $result dbquery($strSQL);

                       
            $strReturnString "<select name='cboAbteilung' size='1'>\n";
                       
            $strReturnString .= "<option value=''>&nbsp;</option>\n";
                       if (
            $showSpare) {
                            
            $strReturnString .= "<option value='spare'>** Make Spare Part **</option>";
                       }
                       
            $i!=0;
                       while (
            $row mysql_fetch_array($result)) {
                            
            $strReturnString .= "<option value='".$row['id_abteilung']."' ".writeSelected($row['id_abteilung'], $intAbteilung).">";
                            if(
            $i != 0){
                            

                            
            $strReturnString .= "$row[name] ";
                            
            $strReturnString .= "</option>\n";
            }
            $i++;
                       }
                       
            $strReturnString .= "</select>\n";
                  
            # }
                  
            Return $strReturnString;
              } 
            so funktioniert es wieder einwandfrei, aber was soll ich hier anders gemacht haben? versteh das nicht. immerhin funktioniert es, würd aber trotzdem gerne den fehler von vorhin wissen. wenn einer ne idee hat, kann er sie mir ja sagen

            Kommentar


            • #7
              also es liegt an diesem code

              if ($showSpare) {
              $strReturnString .= "<option value='spare'>** Make Spare Part **</option>";
              }


              wenn ich den rauslösche, funktioniert es wieder nicht. warum benötige ich einen weiteren eintrag vorher??

              Kommentar

              Lädt...
              X