Ich kriegs nicht hin

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

  • Ich kriegs nicht hin

    Es funktioniert alles, bis auf die Einträge, in denen es keinen PC gibt (fk_asset=0). Ich wollte überprüfen, ob das Null ist, wenn dann soll er hald den Text ausgeben und aufhören. Aber jetzt sagt er, dass alle Spare Part sind, obwohl sie es ja in wirklichkeit nicht sind.

    kann mir bitte jemand sagen, was ich falsch gemacht habe?

    PHP-Code:
    echo "by using this Keyword:   <big>$ug</big><p>";
       
       if(
    $abteilung_fk!=0){}
       else{
       
    $sqlab =  " SELECT  ";
       
    $sqlab .= " pt.description, p.sparePart, p.serial_num,  ";
       
    $sqlab .= " h.pk_asset From peripherals as p ";
       
    $sqlab .= " LEFT JOIN peripheral_types as pt ON pt.peripheral_pk=p.peripheral_fk ";
       
    $sqlab .= " LEFT JOIN hardware as h ON p.fk_asset=h.pk_asset ";
       
    $sqlab .= " WHERE p.serial_num ='$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!";}
          
       if(
    p.fk_asset==0)
       {    echo 
    "This Type is a SparePart!<br>";
            
    $num=0; }

       for (
    $i=0$i<$num$i++)
       {  
    $h_p mysql_result($res$i"h.pk_asset");
          
    $pt_d mysql_result($res$i"pt.description");
          
    $p_s  mysql_result($res$i"p.sparePart");
          
    $p_se mysql_result($res$i"p.serial_num");

          
          
    //$hh = mysql_result($res, $i, "pt.description");
          
    echo "<A HREF=\"showfull.php?id= ";
          echo 
    "$h_p"
          echo 
    "&spare=$p_s\">Detailed View</A><br> "
          echo 
    "<u>Description:</u> $pt_d<br>";
          echo 
    "<u>Serial:</u> $p_se";}} 

  • #2
    wenn du nachshaust, was p.fk_asset sein soll, hast du dein Problem gelöst

    Kommentar


    • #3
      wie, kapier ich net

      Kommentar


      • #4
        Wenn ich mich nicht irre , ist p.fk_asset kein Variable , sondern Datensätze oder?

        wie kannst du ein Vergleich machen, wo Datensätze == 0
        natürlich ist das nicht der Fall, und die Schleife wird ausgeführt, und $num ist auch nicht 0,
        ich vermute, du bekommst eine unendlose Schleife, richtig?

        Kommentar


        • #5
          nein, das ist schon alles richtig.

          $num ist ja nur 0, wenn kein Datensatz gefunden wird.

          Und fk_asset ist 0 wenn ich es verschiebe und zu einem sparepart mache, dann wird die fk_asset 0, da die Pheriperie nicht mehr zu einem rechner gehört.

          Das stimmt schon alles so.

          Kommentar


          • #6
            vielleicht ist auch p.fk_asset = 0,
            anssonsten kannst du die funktion die() benutzen, damit der Skript aufhört.

            Kommentar


            • #7
              == 0 ist auch richtig, wenn ich = machen würde, würde ich fk_asset ja die null zuweisen.

              und für was die(), ich hab keine endlosschleife.

              Kommentar


              • #8
                ich meine vielleicht ist der Wert p.fk_asset gleich 0 ,

                PHP-Code:
                 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!";
                      die();

                damit es aufhört wenn nichts gefunden ist.

                Kommentar


                • #9
                  das bricht hier doch eh ab, was soll er in der schleife denn bearbetien? 0 <0 ist ja wohl nicht wahr, oder?

                  Und zu dem =, ich habs jetzt extra eingeben, damit wir das abhaken können. Es kommt ein Fehler, was ich ja eigentlich vorher schon wusste.

                  Kommentar


                  • #10
                    das ist wahr, dass 0 < 0 nicht wahr ist,
                    deshalb wird er auch nichts in der Schleife bearbeitet.

                    wenn du $num > 0 hast, passiert schon was in der Schleife

                    Kommentar


                    • #11
                      ja genau das will ich ja. also brauch ich das die() nicht. aber woran könnte das sonst noch liegen??

                      Kommentar


                      • #12
                        das kann vielleicht an p.fk_asset liegen
                        ich vermute p.fk_asset wird immer null für beliebige Suchbegriffe

                        Kommentar


                        • #13
                          mir ist schon klar, dass es an p.fk_asset liegt.

                          aber warum?? Was soll daran falsch sein?

                          Kommentar


                          • #14
                            Zum Vergleichen kannst du nur ein Variablen, oder ein einzelnen Datensatz

                            z.B if ($a==0)
                            oder
                            if ($entries['fk_asset']) == 'pc'; <-- dies kannst du machen innerhalb die Whileschleife


                            aber nicht die Gesamte Datensätze gegen ein bestimmten Wert

                            Kommentar


                            • #15
                              na ja, an dem könnte es schon liegen. aber wie mach ich das jetzt, dass er mir nur den datensatz aus der query hernimmt??

                              Kommentar

                              Lädt...
                              X