php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 3 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 24-07-2008, 22:55
pjoern
 Registrierter Benutzer
Links : Onlinestatus : pjoern ist offline
Registriert seit: Aug 2006
Ort: Neunkirchen
Beiträge: 107
pjoern ist zur Zeit noch ein unbeschriebenes Blatt
Standard 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?
__________________
Gruß
Jörn

http://www.restaurant-berater.de
Mit Zitat antworten
  #2 (permalink)  
Alt 24-07-2008, 23:11
XGremliN
 PHP Senior
Links : Onlinestatus : XGremliN ist offline
Registriert seit: Sep 2003
Ort: Karl-Marx-Stadt
Beiträge: 1.900
XGremliN ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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!
Mit Zitat antworten
  #3 (permalink)  
Alt 24-07-2008, 23:16
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Regeln

Bei der "Problemstellung" wären mal Testausgaben (vgl. Debugging) angesagt!...
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #4 (permalink)  
Alt 24-07-2008, 23:18
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du greifst auf $_GET-Werte zu, ohne zu prüfen, ob sie existieren!
Mit Zitat antworten
  #5 (permalink)  
Alt 25-07-2008, 11:47
Denny
 Newbie
Links : Onlinestatus : Denny ist offline
Registriert seit: Jul 2008
Beiträge: 21
Denny ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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.



Geändert von Denny (25-07-2008 um 11:51 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 25-07-2008, 12:10
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
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.

Zitat:
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.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 25-07-2008, 16:17
Denny
 Newbie
Links : Onlinestatus : Denny ist offline
Registriert seit: Jul 2008
Beiträge: 21
Denny ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
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.

Zitat:
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?

Zitat:
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...
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:57 Uhr.