Fehler im Code "HILFE"

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

  • Fehler im Code "HILFE"

    Hallo Leute,
    habe einen Menüpunkt Suche.

    Wenn ich nach einem bestimmten PC suche (Spare Part = 1), der in einer ABteilung vorhanden ist, dann geht alles wunderbar.

    Versuche ich nach einem bestimmten PC zu suchen, der Spare part (SparePart=0) ist, dann gibt er immer aus, dass er keine passenden Datensätze gefunden hat.

    $sparePart wurde vorher nicht übergeben. Nur zur Info.
    Ich verstehe wirklich nicht, was ich falsch gemacht habe, denn wenn ich den hostnamen eingebe, muss er den doch auch finden?!

    Ich hoffe, mir kann einer von euch helfen. Mach jetzt schon 1 Woche an dem Problem rum, und finde es nicht.

    PHP-Code:
      if($sparePart==0){
       
    $sqlab  " SELECT a.name, a.id_abteilung, ";
       
    $sqlab .= " h.pk_asset, h.type, h.serial_num, h.abteilung_fk, h.hostname, h.sparePart, ";
       
    $sqlab .= " ht.type_pk  ";
       
    $sqlab .= " FROM Abteilung as a LEFT JOIN hardware as h ON a.id_abteilung=h.abteilung_fk ";
       
    $sqlab .= " LEFT JOIN hw_types as ht ON h.type=ht.type_pk ";
       
    $sqlab .= " WHERE h.serial_num ='$ug' OR h.hostname = '$ug' ";}
       else{
       
    $sqlab  " SELECT h.pk_asset, h.type, h.serial_num, h.hostname, h.sparePart, ";
       
    $sqlab .= " ht.type_pk  ";
       
    $sqlab .= " FROM hardware as h  ";
       
    $sqlab .= " LEFT JOIN hw_types as ht ON h.type=ht.type_pk ";
       
    $sqlab .= " WHERE h.serial_num ='$ug' OR h.hostname = '$ug' ";}

       
       
       
    $res dbquery($sqlab);
       
    $num mysql_num_rows($res);

       if (
    $num==0)
            { echo 
    "Sorry, but there are no matches found in Hardware.<br>";
          echo 
    "Are you sure, that you type in the correct word!";} 

  • #2
    1. $res = dbquery($sqlab) or die (mysql_error());
    2. Wo wird denn $sparePart in der Query benutzt?
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      1) Also or die (mysql_error()); hab ich eingefügt, da ändert sich gar nix. Kommt auch kein Fehler.

      2) wie? Versteh ich nicht

      Kommentar


      • #4
        ich habe eine Tabelle Abteilung, die ist wenn es ein SparePart ist 0.

        An diesem Eintrag liegt es, dass es nicht funktioniert.
        Woran kann das liegen?

        Kommentar


        • #5
          wie "die Tabelle ist 0"
          verwirr mich doch!

          oder poste einfach mal die Datensätze aus den Tabellen "Abteilung" und "hardware", die gefunden werden sollen
          (SQL-Dump, complete inserts)
          mein Sport: mein Frühstück: meine Arbeit:

          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

          Kommentar


          • #6
            also wenn ich aus einem PC einen SparePart mache, dann setzte ich sparePart auf 0 und die Abteilung (z.B. 6) wird auch auf 0 gesetzt, da er ja nirgendwo (in keiner Abteilung) mehr ist.

            Verstehst du, was ich meine?

            Kommentar


            • #7
              dann such doch einfach in hardware "where abteilung_fk=0"
              mein Sport: mein Frühstück: meine Arbeit:

              Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

              Kommentar


              • #8
                Jetzt hab ich das Kriterium auf Abteilung gerichtet.

                Jetzt hüpft er immer in den else zweig. gibt auch alles richtig aus, bis auf die ABteilung, die != 0 sind. Drinnen steht ja dann auch keine.

                hab schon probiert, die abteilung unten einzufügen und dann auszugeben. aber dann macht er garnix mehr.

                PHP-Code:
                if($abteilung_fk!=0){
                   
                $sqlab  " SELECT a.name, a.id_abteilung, ";
                   
                $sqlab .= " h.pk_asset, h.type, h.serial_num, h.abteilung_fk, h.hostname, h.sparePart, ";
                   
                $sqlab .= " ht.type_pk  ";
                   
                $sqlab .= " FROM Abteilung as a LEFT JOIN hardware as h ON a.id_abteilung=h.abteilung_fk ";
                   
                $sqlab .= " LEFT JOIN hw_types as ht ON h.type=ht.type_pk ";
                   
                $sqlab .= " WHERE h.serial_num ='$ug' OR h.hostname = '$ug' ";
                   
                   
                $res dbquery($sqlab);
                   
                $num mysql_num_rows($res);

                   if (
                $num==0)
                        { echo 
                "Sorry, but there are no matches found in Hardware.<br>";
                      echo 
                "Are you sure, that you type in the correct word!";}

                   for (
                $i=0$i<$num$i++)
                   {
                      
                $a_n mysql_result($res$i"a.name");
                      
                $a_i mysql_result($res$i"a.id_abteilung");
                      
                $h_p mysql_result($res$i"h.pk_asset");
                      
                $h_t mysql_result($res$i"h.type");
                      
                $h_s mysql_result($res$i"h.serial_num");
                      
                $h_a mysql_result($res$i"h.abteilung_fk");
                      
                $h_h mysql_result($res$i"h.hostname");
                      
                $ht_tp mysql_result($res$i"ht.type_pk");
                      
                $h_sp mysql_result($res$i"h.sparePart");}
                   }
                   else{
                   
                $sqlab  " SELECT h.pk_asset, h.type, h.serial_num, h.hostname, h.sparePart, ";
                   
                $sqlab .= " ht.type_pk  ";
                   
                $sqlab .= " FROM hardware as h  ";
                   
                $sqlab .= " LEFT JOIN hw_types as ht ON h.type=ht.type_pk ";
                   
                $sqlab .= " WHERE h.serial_num ='$ug' OR h.hostname = '$ug' ";
                   
                    
                $res dbquery($sqlab);
                   
                $num mysql_num_rows($res);

                   if (
                $num==0)
                        { echo 
                "Sorry, but there are no matches found in Hardware.<br>";
                      echo 
                "Are you sure, that you type in the correct word!";}

                   for (
                $i=0$i<$num$i++)
                   {  
                $h_p mysql_result($res$i"h.pk_asset");
                      
                $h_t mysql_result($res$i"h.type");
                      
                $h_s mysql_result($res$i"h.serial_num");
                      
                      
                $h_h mysql_result($res$i"h.hostname");
                      
                $ht_tp mysql_result($res$i"ht.type_pk");
                      
                $h_sp mysql_result($res$i"h.sparePart");}

                   

                      
                //$hh = mysql_result($res, $i, "h.hostname");
                      
                echo "<u>Abteilung:</u> keine ";
                      echo 
                "<A HREF=\"showfull.php?id= ";
                      echo 
                "$h_p"
                      echo 
                "&spare=$h_sp\">Detailed View</A><br> "
                      echo 
                "<u>Hostname:</u> $h_h<br>";
                      echo 
                "<u>Serial:</u> $h_s";} 

                Kommentar


                • #9
                  ich komme einfach nicht drauf. hat keiner eine idee?

                  Kommentar

                  Lädt...
                  X