LIMIT wird nicht eingehalten

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

  • LIMIT wird nicht eingehalten

    Hallo,
    ich habe jetzt fogenden Code programmiert:
    PHP-Code:
    // Kategorien werden geladen  
    $abfrage "SELECT * FROM wfcms_cats";   
    $ergebnis mysql_query($abfrage);
    while(
    $row mysql_fetch_array($ergebnis)){ 
    $kategorien[]=$row;   
    }   
    // Ende Kategorien Laden

     
     // Software Short News  $shortnews_mc_db = 
    "SELECT * FROM wfcms_news ORDER BY datum DESC 
    LIMIT 
    $max_maincat_1";
    $shortnews_mc_read mysql_query($shortnews_mc_db);
    if(
    $cat_1 $cat_1)
    {  
    echo 
    "Software News:<br>";  
    }        
    while(
    $row mysql_fetch_array($shortnews_mc_read))
    {               
    extract($row);
    $shortnews_mc_titel substr($titel,0,28);
    $shortnews_mc_titel_zs substr($titel,25,28);
    $shortnews_mc_titel_a str_replace("$shortnews_mc_titel_zs","...",$titel);
    foreach ( 
    $kategorien AS $kategorien_element
    {
    if ( 
    $kategorie==$kategorien_element[0] )               {                   
    $mainkategorie $kategorien_element[2];                   
    break; 
    //foreach beenden               
    }           
    }              
    if(
    $mainkategorie == $cat_1)               
    {                  
    echo 
    "<a href='$index?id=$id'>$shortnews_mc_titel_a</a><br>";
    }   
    }  
    // Ende Software 
    Wenn ich denselben Code (d.h. ab // Software News) nochmals kopiere und mit anderen Variablen versehe und dann ebend andere News auslesen lasse (die der Hauptkategorie, z.B. Hardware entsprechen) und dort das Limit ebenfalls auf 2 stelle, dann wird aber nur das Limit von dem ersten Code verwendet, d.h. die Newsheadline Ausgabe für die jeweiligen Kategorien werden durch den Wert des oberen Code bestimmt, wie kann ich das ändern, sodass für jeden Code ein induviduelles LIMIT eingestellt werden kann?
    Zuletzt geändert von ; 09.10.2004, 15:28.

  • #2
    Was sollte daran nicht laufen oder sich überschneiden ?

    PHP-Code:

     
    // Hardware Short News  $shortnews_mc_db = 
    "SELECT * FROM wfcmh_news ORDER BY datum DESC 
    LIMIT 
    $max_maincat_2";
    $shortnews_mc_read mysql_query($shortnews_mc_db);
    if(
    $cat_2$cat_2)
    {  
    echo 
    "Hardware News:<br>";  
    }        
    while(
    $row mysql_fetch_array($shortnews_mc_read))
    {               
    extract($row);
    $shortnews_mc_titel substr($titel,0,28);          
    $shortnews_mc_titel_zs substr($titel,25,28);          
    $shortnews_mc_titel_a str_replace("$shortnews_mc_titel_zs","...",$titel);
    foreach ( 
    $kategorien AS $kategorien_element
    {
    if ( 
    $kategorie==$kategorien_element[0] )               {                   
    $mainkategorie $kategorien_element[2];                   
    break; 
    //foreach beenden               
    }           
    }              
    if(
    $mainkategorie == $cat_2)               
    {                  
    echo 
    "<a href='$index?id=$id'>$shortnews_mc_titel_a</a><br>";
    }   
    }  
    // Ende Software 
    ?
    Zuletzt geändert von php-anfaenger; 09.10.2004, 15:49.
    -> It`s good to be bad! <-

    http://de.php.net
    http://php-faq.de
    http://www.schattenbaum.net
    http://www.dreamcodes.com

    Kommentar


    • #3
      Theoretisch ist mir auch nichts aufgefallen, aber in der Praxis funktioniert es nicht (auch nicht dein Code), wenn auf $max_maincat_1 = 2 ist und diese Kategorie 2 Einträge hat, dann wird egal, was ich für $max_maincat_2 eintrage nur 2 Headlines ausgeben, wenn ich für $max_maincat_1 = 4 eingebe, dann wird auch die 1ne Headline für Hardware News ausgegeben, ich finde es ganz schon merkwürdig, warum das nicht funktioniert.

      Kommentar


      • #4
        Poste mal bitte ohne das ich Seitwärts scrollen muss...

        Und poste mal bitte deine Lösung wie du es vorhattest....
        Wenn du als Limit aber 2 Variablen nimmst wie:

        PHP-Code:
        $max_maincat_1 "5"// für Software
        $max_maincat_2 "10"// für Hardware 
        Dann sollte es kein Problem sein...
        -> It`s good to be bad! <-

        http://de.php.net
        http://php-faq.de
        http://www.schattenbaum.net
        http://www.dreamcodes.com

        Kommentar


        • #5
          was soll das?
          PHP-Code:
          if($cat_1 $cat_1
          setz mal dein error_reporting auf E_ALL!
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            Also habe mal etwas noch ausprobiert, zuvor, ja ich verwende 2 Variablen, wenn ich in die 1. Variable für Software News 2 einsetze, muss ich in die 2. 3 einsetzen, damit dort auch die Newszeile angezeigt wird.
            Der richtige Code mal als Anlage.
            Du solltest vielleicht deinen Code mal editieren, damit du nicht scrollen musst
            Angehängte Dateien

            Kommentar


            • #7
              Original geschrieben von derHund
              was soll das?
              PHP-Code:
              if($cat_1 $cat_1
              setz mal dein error_reporting auf E_ALL!
              Ja, das war nur nen Test, eigentlich kwatsch, denn man könnte ebenso gut schreiben,
              PHP-Code:
              echo "Software News:"
              Da wollte ich im nachhinein noch etwas draus machen, nur deshlab erstmal diese sinnlose if-Schleife.


              EDIT:
              error_reporting war auf E_ALL gestellt.

              Kommentar


              • #8
                Original geschrieben von hasch
                Ja, das war nur nen Test, eigentlich kwatsch

                Naja wenns nur "kwatsch" war, gehts ja noch

                Hast mich aufs kreuz gelegt hab deinen Thread ohne Zeilenumbrüche kopiert, jaja ....

                Original geschrieben von hasch
                Also habe mal etwas noch ausprobiert, zuvor, ja ich verwende 2 Variablen, wenn ich in die 1. Variable für Software News 2 einsetze, muss ich in die 2. 3 einsetzen, damit dort auch die Newszeile angezeigt wird.
                Das musst du mir nochmal in ruhe erklären... Bei mir geht der Anhang nicht...
                -> It`s good to be bad! <-

                http://de.php.net
                http://php-faq.de
                http://www.schattenbaum.net
                http://www.dreamcodes.com

                Kommentar


                • #9
                  Logisch kann er ja auch nicht, da du nicht die confic.inc.php und die db.php hast, außerdem fehlen dir ja die Datenbankeinträge zum testen, ich habe echt keine Idee mehr.


                  Also noch mal in Ruhe:
                  Es gibt eine Variable für das LIMIT der Software News und eine für das LIMIT der Hardware News, wenn ich nun das LIMIT der Software News auf 2 setze, muss ich das LIMIT der Hardware News auf 3 setzen, damit die News der Hardware News auch angezeigt wird.

                  Kommentar


                  • #10
                    Original geschrieben von hasch
                    Logisch kann er ja auch nicht, da du nicht die confic.inc.php und die db.php hast, außerdem fehlen dir ja die Datenbankeinträge zum testen, ich habe echt keine Idee mehr.
                    lol ?
                    Ich meinte das wenn ich auf den Anhang klicke.... ein weisses Bild kommt....

                    Original geschrieben von hasch
                    Also noch mal in Ruhe:
                    Es gibt eine Variable für das LIMIT der Software News und eine für das LIMIT der Hardware News, wenn ich nun das LIMIT der Software News auf 2 setze, muss ich das LIMIT der Hardware News auf 3 setzen, damit die News der Hardware News auch angezeigt wird.
                    Eindeutig fehler im Code den ich nicht sehe...
                    -> It`s good to be bad! <-

                    http://de.php.net
                    http://php-faq.de
                    http://www.schattenbaum.net
                    http://www.dreamcodes.com

                    Kommentar


                    • #11
                      Also, bei mir kommt der Code, hab ihn dir mal hier als .rar Datei gepackt, http://www.xp-page.net/index.rar

                      Kommentar


                      • #12
                        okay, danke...
                        teste das mal bitte:

                        PHP-Code:

                        // Software Short News
                        $shortnews_mc_db_sw "SELECT * FROM wfcms_news ORDER BY datum DESC LIMIT $max_maincat_1"
                        $shortnews_mc_read_sw mysql_query($shortnews_mc_db_SW); 

                        if(
                        $cat_1)
                        {
                        echo 
                        "Software News:<br>";
                        }

                            while(
                        $row mysql_fetch_array($shortnews_mc_read_sw))
                                {     
                                
                        extract($row);
                                
                        $shortnews_mc_titel substr($titel,0,28);
                                
                        $shortnews_mc_titel_zs substr($titel,25,28);
                                
                        $shortnews_mc_titel_a str_replace("$shortnews_mc_titel_zs","...",$titel);
                                
                                foreach ( 
                        $kategorien AS $kategorien_element 
                                { 
                                    if ( 
                        $kategorie==$kategorien_element[0] ) 
                                    { 
                                        
                        $mainkategorie $kategorien_element[2]; 
                                        break; 
                        //foreach beenden 
                                    

                                }
                                    if(
                        $mainkategorie == $cat_1
                                    {
                                        echo 
                        "<a href='$index?id=$id'>$shortnews_mc_titel_a</a><br>";
                                    } 
                        }
                        // Ende Software


                        // Hardware Short News  
                        $shortnews_mc_db_hw "SELECT * FROM wfcms_news ORDER BY datum DESC LIMIT $max_maincat_2"
                        $shortnews_mc_read_hw mysql_query($shortnews_mc_db_hw); 

                        if(
                        $cat_2)
                        {
                        echo 
                        "Hardware News:<br>";
                        }

                            while(
                        $row mysql_fetch_array($shortnews_mc_read_hw))
                                {     
                                
                        extract($row);
                                
                        $shortnews_mc_titel substr($titel,0,28);
                                
                        $shortnews_mc_titel_zs substr($titel,25,28);
                                
                        $shortnews_mc_titel_a str_replace("$shortnews_mc_titel_zs","...",$titel);
                                
                                foreach ( 
                        $kategorien AS $kategorien_element 
                                { 
                                    if ( 
                        $kategorie==$kategorien_element[0] ) 
                                    { 
                                        
                        $mainkategorie $kategorien_element[2]; 
                                        break; 
                        //foreach beenden 
                                    

                                }
                                    if(
                        $mainkategorie == $cat_2
                                    {
                                        echo 
                        "<a href='$index?id=$id'>$shortnews_mc_titel_a</a><br>";
                                    } 
                        }
                        // Ende Software 
                        Wie du siehst habe ich die Variablen der Queries geändert da sonst der 2. den 1 immer wieder überschreibt bzw. es zu fehlern oder auch Problemen kommt....
                        -> It`s good to be bad! <-

                        http://de.php.net
                        http://php-faq.de
                        http://www.schattenbaum.net
                        http://www.dreamcodes.com

                        Kommentar


                        • #13
                          Echt nett von dir, dass du dir solch eine Mühe gemacht hast, kommt jedoch genau das selbe raus, wie vorher.
                          Könnte es noch eine andere Ursache geben?

                          Kommentar


                          • #14
                            Ich habe jetzt ne andere Methode genutzt, habe die Datenbankanfrage für beide gleich genutzt, sodass nur einmal festgelegt werden muss, wieviele News ausgegeben werden (z.B. 10, dann wird für beide Kategorien jeweils 5 ausgegeben).
                            Es ist zwar nicht die Lösung für das Problem, ich find aber auch keine bessere Lösung, wenn jemand die Lösung entdeckt, darf er sie gerne Preis geben.
                            Danke nochmals für eure Mühe!

                            Kommentar


                            • #15
                              Japp kann es, und zwar das du in keinem deiner Selects nach einer bestimmten kategorie Sortierst bzw. Filterst...

                              Klar das ergebnis wird immer das gleiche sein wenn es die identischen abfragen sind...

                              PHP-Code:

                              SELECT 
                              FROM wfcms_news where cat="hardware" ORDER BY datum DESC LIMIT $max_maincat_1 
                              oder so...
                              -> It`s good to be bad! <-

                              http://de.php.net
                              http://php-faq.de
                              http://www.schattenbaum.net
                              http://www.dreamcodes.com

                              Kommentar

                              Lädt...
                              X