Scriptproblem

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

  • Scriptproblem

    Hi Profis,

    irgendwo in meinem Script habe ich einen Fehler, ich finde ihn aber nicht.

    Das Script läüft unter

    http://www.firmen-park.de

    Wenn ich eine Kategorie auf der Hauptseite anklicken, wird sie richtig dargestellt, bis auf die erste Kategorie (Baden-Württemberg). Diese ist nämlich leer, bzw wird als leer angezeigt. Es sind jedoch die gleichen Unterkategorien drin, wie in den anderen Kategorien auch.

    Ich nehme mal an, dass der Array-Zeiger in der falschen Position zu Beginn ist, kann jedoch keinen Fehler entdecken.

    Quellcode:

    $firstrowonpage = $_GET["offset"] + 1;
    $totalpages = intval($all_links / $perpage);
    if ($all_links%$perpage) {

    $totalpages++;
    }
    if ($totalpages <1){
    $totalpages++;
    }
    $nav = page_num("search.php",$_GET['id'], $all_links, $perpage, $pagenum, $_GET['offset'],$_GET["id"],$_GET["catid"],$subid,$anyword);
    $reclinks = getreclinks($_GET["id"]);
    if (empty($catfatherid) AND !isset($catfatherid)){
    $catfatherid = $_GET['id'];
    }
    $catsql = "select catid,catname,total from $cat_tbl where catfatherid = '{$catfatherid}'";

    $getCats = mysql_query($catsql) or die("error: ".mysql_error());
    $catlinks = mysql_num_rows($getCats);
    $catrows = " <tr>\n";
    $c=0;
    for($i=0; $i<$catlinks; $i++){
    $categories = mysql_fetch_array($getCats);
    $catrows .= " <td style=\"width:16px; text-align:right;\"><img style=\"vertical-align:middle\" src=\"images/arrow.gif\" width=\"9\" height=\"5\" alt=\"\" title=\"\" /></td>\n";
    $catrows .= " <td style=\"width:250px; text-align:left\" class=\"greenbold\">&nbsp;&nbsp;<span class=\"greenbold\"><a class=\"greenbold\" href=\"search.php?id={$categories['catid']}\">{$categories['catname']}</a></span>";
    if($categories['total'] > 0){
    $catrows .= " <span class=\"greytext\">({$categories['total']})</span>";
    }
    $catrows .= "<br /></td>\n";
    if ($c == 2){
    $catrows .=" </tr>\n";
    if ($i+1<$catlinks){
    $catrows .= " <tr>\n";
    }
    $c=0;
    } else {
    $c++;
    }

    }

    eval("\$category = \"".gettemplate("templates/search_categories")."\";");

    echo $category;


    $color = "#FCFFE4";
    if ($num_links){
    $listing = "";
    for ($i=0; $i<$num_links; $i++){
    $stars = '';
    $row = mysql_fetch_array($sql_result);
    $siteid = $row["siteid"];
    $sitetitle = $row["sitetitle"];
    $sitehits = $row["sitehits"];
    $color = ($color == "#FCFFE4")?"#FFFFFF":"#FCFFE4";

    $ratesql = mysql_query("select AVG(rating) AS Rating_Average,COUNT(id) AS TotalRatings from $rating_tbl where rating_id = '$siteid'");


    $rate = mysql_fetch_array($ratesql);
    if($rate['Rating_Average'] > 0){
    $numerofratings = $rate['TotalRatings'];
    $average = sprintf("%01.0f", $rate['Rating_Average']);
    } else {
    $numerofratings = 0;
    $average = 0;
    }
    if ($average > 0){
    for($x=0; $x<$average; $x++){
    $stars .= "<td><img src=\"images/star_full.gif\" width=\"13\" height=\"13\" alt=\"Full Star\" title=\"Full Star\" /></td>";
    }
    if(5 -$average >0){
    $leftover = 5 -$average;
    for($x=0; $x<$leftover; $x++){
    $stars .= "<td><img src=\"images/star_empty.gif\" width=\"13\" height=\"13\" alt=\"Empty Star\" title=\"Empty Star\" /></td>";
    }
    }
    } else {
    for($x=0; $x<5; $x++){
    $stars .= "<td><img src=\"images/star_empty.gif\" width=\"13\" height=\"13\" alt=\"Empty Star\" title=\"Empty Star\" /></td>";
    }
    }
    // end total rating
    if(!$row["updatetime"]){
    $siteupdate = "<strong>Added:</strong> ".date("D M j Y", $row["sitedate"]);
    } else {
    $siteupdate = "<strong>Updated: </strong>".date("D M j Y", $row["updatetime"]);
    }
    if (!empty($row['sponsor'])){
    $SponsorImage = "<span class=\"redtext\">SPONSORED</span>";
    $curl = "spclick.php?sid=$siteid";
    } else {
    $SponsorImage = "";
    $curl = "click.php?sid=$siteid";
    }
    $catname = $row["catname"];
    $url = "details.php?sid=$siteid";
    $descr = $row["sitedescription"];

    eval("\$listing .= \"".gettemplate("templates/searchlisting")."\";");

    }
    // End fetch
    } else {
    $listing = "<tr><td><div class=\"error\">$NoItemsToDisplay</div></td></tr>\n";
    }
    eval("\$listing .= \"".gettemplate("templates/mainsearch_end")."\";");
    echo $listing;



    Jemand eine Idee?

  • #2
    du solltest erstmal deinen code in php-tags packen und ihn richtig formatieren. so sieht ja kein mensch durch
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      Regeln

      Bei der "Problemstellung" wären mal Testausgaben (vgl. Debugging) angesagt!...

      Kommentar


      • #4
        Du greifst auf $_GET-Werte zu, ohne zu prüfen, ob sie existieren!

        Kommentar


        • #5
          Ich sags mal so, wenn du dein Script in Klassen/Funktionen aufteilen würdest und deinen PHP/HTML Gewirr evt. mit Smarty auftrennen würdest, dann bin ich mir ziemlich sicher das du den Fehler selbst findest.

          denn SO - SORRY - blickt ja keine Sau durch der sonst nur mit Klassen arbeitet.

          Also:

          Eine Klasse nur für SQL Funktionen z.b. getAllCat() oder getParentCatFromID()
          Eine Hauptklasse für Funktionslogik und ggf. ne weitere für alles was zur HTML Ausgabe führt.


          Zuletzt geändert von Denny; 25.07.2008, 10:51.

          Kommentar


          • #6
            und deinen PHP/HTML Gewirr evt. mit Smarty auftrennen würdest,
            Ich finde nicht, dass man Smarty pauschal empfehlen sollte. Es gibt auch andere (einfachere) Möglichkeiten seine Code übersichtlich zu gestalten: Sauber strukturieren.

            wenn du dein Script in Klassen/Funktionen aufteilen würdest
            Auch deine Klassen-Empfehlung kann ich so nicht ohne weiteres Teilen. Sicher macht es sinn, einen SQL-Handler in Form einer Klasse zu verwenden. Aber für jeden Driss ne eigene Methode ist oftmals eher kontraproduktiv, da die Wiederverwendbarkeit doch eher gering ist, dafür steigt bei Methoden wie getParentCatFromID() die Redundanz insbesondere im Hinblick auf die abgesetzten Queries.

            Eine Klasse für HTML-Ausgaben ist IMHO der krasseste Gegensatz zum Sinn vonn objektorientierter Programmierung.

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              [B]Ich finde nicht, dass man Smarty pauschal empfehlen sollte. Es gibt auch andere
              Nun, mit Smarty bekommt man wirklich leicht und schnell eine saubere Trennung von PHP und HTML. Dazu gibts dann noch Caching und div. andere Features inkl. einer guten Dokumentation.

              Sicherlich gibts es zuhauf andere Template-Engines und wenn man mag kann man auch sich eine selbst bauen.

              Also Rahmen der Zielsetzung der meisten Scripte und des Leistungsumfangs von Smarty kann ICH das also durchaus pauschal empfehlen. Aber du kannst ja gerne weitere/andere Engines inkl. einen Vergleich aufführen.

              Wiederverwendbarkeit doch eher gering ist, dafür steigt bei Methoden wie
              Mal ganz ehrlich. Wieviele Klassen verwendest du in deinem letztem Projekt und wieviele kannst du davon in einem anderen weiterverwenden. Zumeist sind es ja doch sehr viele Projektspezifische Klassen. Also nur wegen Wiederverwendbarkeit jetzt seinen Code nicht mehr zu strukturieren finde ich quatsch. Lieber packe ich meine SQL Querys hübsch in eine Klasse und kann an anderer Stelle übersichtlicheren Code schreiben. Wie machst du es denn?

              Eine Klasse für HTML-Ausgaben ist IMHO der krasseste Gegensatz zum Sinn vonn objektorientierter Programmierung.
              Obs dem Sinn von OOP Entspricht mag ich so nicht beurteilen, aber wenn man nicht mit einer Templ.Eng. arbeitet macht das schon Sinn um wenigsten halbwegs eine Trennung von Code und HTML zu erreichen.

              Aber jeder kann ja seinen Style proggen wie er möchte. Und Programmierstyles müssen wir hier nicht breittreten. Letztendlich hat ehh jeder sein eigenen.
              Wichtig ist doch nur der Hinweis auf mehr Struktur...

              Kommentar

              Lädt...
              X