• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

falsche Formartierung.

xXxPeterPanxXx

Neues Mitglied
Hi,
ich bins mal wieder mit dem selben Code wie gestern. Das Problem bei mir wird der Code nicht richtig ausgegeben.
Es soll wie aufdieser Seite mit der Auflistung der Kategorien seien:
Webkatalog | Ranking-Webkatalog.de - Schnell. Übersichtlich. Informativ.
Also alle Hauptkategorein sind ein <li> in dem auch die Unterkategorien stehen sollen.

Code:
<div class="cat"><ul>
<?php
$i=0;
$kategorien = mysql_query("SELECT * FROM kategorien WHERE id_ref='0' ORDER BY name ASC");
while ($kategorie = mysql_fetch_array($kategorien))
{
if($i == 4) echo "</ul></div><div class=\"cat\"><ul>";
echo "<li>";
echo "<a href=\"kategorie/".$kategorie['name_url']."\">".$kategorie['name']."</a></li><ul class=\"subcat\">";
$kategorien_sub = mysql_query("SELECT * FROM kategorien WHERE id_ref='".$kategorie['id']."' ORDER BY name ASC");
$x = 1; 
$num_rows = mysql_num_rows($kategorien_sub); 
while($kategorie_sub = mysql_fetch_assoc($kategorien_sub)) {
echo "<p>";
echo $kategorie_sub['name'];
if($x != $num_rows) {
echo ",";
echo "</p>";
    }

     $x++;
}

{
echo "</li>";
echo "</ul>";
$i++;
}
}
?>
</ul></div>
Leider habe ich kein Webspace der php hat.


mfg xXxPeterPanxXx
 
Zuletzt bearbeitet:
Dann musst Du dir einen Webspace mit php besorgen oder prüfen, ob es auf deinem Webspace die Unterstützung für eine andere Webprogrammiersprache z.B. über die CGI-Schnittstelle gibt. Wenn letzteres der Fall ist müsstest Du das Script in der jeweiligen Sprache neu schreiben.
 
Dann musst Du dir einen Webspace mit php besorgen oder prüfen, ob es auf deinem Webspace die Unterstützung für eine andere Webprogrammiersprache z.B. über die CGI-Schnittstelle gibt. Wenn letzteres der Fall ist müsstest Du das Script in der jeweiligen Sprache neu schreiben.
Ich meine das ich eich das Leider nicht zeigen kann.
 
Du könntest dem mysql_query noch eine Fehlerausgabe anfügen:
Code:
mysql_query(...) or die("Fehler: ".mysql_error());
Möglicherweise gibt es keine Treffer in der Datenbank.
 
Zuletzt bearbeitet von einem Moderator:
Was ist dann genau dein Problem oder deine Frage :?:
Also ich mache auf meiner Startseite eine Auflistung von Haupt- und Unterkategorien. Doch bei mir wird es nicht richtig angezeigt, denn die Unterkategorien stehen nicht im <li> von der Hauptkategorie. Vllt könnt ihr mir ja helfen?:D

@efchen werde ich gleich einbauen danke!
 
Und sollte das nicht fruchten, könntest Du noch den Code posten, der am Ende am Browser ankommt.
 
Und sollte das nicht fruchten, könntest Du noch den Code posten, der am Ende am Browser ankommt.
Das ist er:
Code:
<h2>Kategorien:</h2>

<div class="cat"><ul>
<li>
<a href="kategorie/Action">Action</a>
</li>
<ul class="subcat"><p>Test</li>
</ul>
<li>
<a href="kategorie/Fun">Fun</a>
</li><ul class="subcat">
</li>
</ul>
<li>
<a href="kategorie/Rollenspiel">Rollenspiel</a>
</li>
<ul class="subcat">
</li>
</ul>
<li>
<a href="kategorie/Shooter">Shooter</a>
</li>
<ul class="subcat">
</li>
</ul>
</ul>
</div>
<div class="cat">
<ul>
<li>
<a href="kategorie/Simulation">Simulation</a>
</li>
<ul class="subcat">
</li>
</ul>
<li>
<a href="kategorie/Sonstige">Sonstige</a>
</li>
<ul class="subcat">
</li>
</ul>
<li>
<a href="kategorie/Sport">Sport</a>
</li>
<ul class="subcat">
<p>Basketball,</p>
<p>Fussball,</p>
<p>Hockey,</p>
<p>Rennen</li>
</ul>
<li>
<a href="kategorie/Strategie">Strategie</a>
</li>
<ul class="subcat">
</li>
</ul>
</ul>
</div>
</div>
<div id="menu_right">
<h2>Anzeigen</h2>

</div>

</div>

<div id="footer">

Was hier schon nicht stimmt ist das alle <li> von einem <ul> umgeben sind was eigentlich nicht sein soll.
 
Da stimmt noch einiges mehr nicht im Code.
- <ul> darf nicht innerhalb von <ul> vorkommen, nur innerhalb <li>
- Du machst <ul> auf und schließt danach </li>
- <p> darf nicht innerhalb <ul> vorkommen
usw...

Aber...Deine ursprüngliche Fehlerbeschreibung war:
Das Problem bei mir wird der Code nicht ausgegeben.
Das hat ja wohl gar nichts mit Deinem Problem zu tun, oder? Meinst Du, damit hätte jemand anders nen Fehler finden können?

Ich würd Dir jetzt als erstes mal empfehlen, den PHP-Code etwas übersichtlicher zu schreiben:
- Einrücken
- Ausgabe jedes Tags in einem gesonderten echo
Dann schaffst Du Dir eine Übersicht, die ich in dem Code auch nicht habe. So kann man keine Fehler finden. Erstmal aufräumen...

Code:
while ($kategorie = mysql_fetch_array($kategorien))
{
    if($i == 4)
    {
        echo "</ul>";
        echo "</div>";
        echo "<div class=\"cat\">";
        echo "<ul>";
    }
    echo "<li>";
    echo "<a href=\"kategorie/".$kategorie['name_url']."\">".$kategorie['name']."</a>";
    echo "</li>";
    echo "<ul class=\"subcat\">";
    $kategorien_sub = mysql_query("SELECT * FROM kategorien WHERE id_ref='".$kategorie['id']."' ORDER BY name ASC");
    $x = 1; 
    $num_rows = mysql_num_rows($kategorien_sub); 
    while($kategorie_sub = mysql_fetch_assoc($kategorien_sub))
    {
        echo "<p>";
        echo $kategorie_sub['name'];
        if ($x != $num_rows) {
            echo ",";
            echo "</p>";
        }

        $x++;
    }

    {
        echo "</li>";
        echo "</ul>";
        $i++;
    }
}
Da fallen Dir dann schon etliche Probleme auf:
1. Wozu sind die Klammern ganz unten. Das ist zwar syntaktisch richtig, aber überflüssig und evtl. sogar verwirrend, weil man nach nem if oder while oder sowas sucht.
2. Etwas weiter oben öffnest Du ein <p>, schließt es aber nur innerhalb des if(). Das kann nicht sein oder?
3. Dieses <p> öffnest Du direkt nach einem <ul>, ohne vorher eine <li> geöffnet zu haben.

- Das <p> wird durch <li> ersetzt (öffnen und schließen).
- Die <ul> wird vor dem while geöffnet und direkt hinter dem while geschlossen.

...und noch einiges mehr...aber dazu hab ich jetzt keine Lust. Du lernst es nicht, wenn Du es nicht selber aufräumst :-)
 
Danke efchen für deine Hilfe.
Ich habe in dem Code ganz viele html tags rausgenommen nur leider wird jetzt gar nichts angezeigt. Als ich den Code von dir unverändert genommen habe hat es auch nicht funktioniert.
Code:
<?php
while ($kategorie = mysql_fetch_array($kategorien))
{
    if($i == 4)
    {
        echo "<div class=\"cat\">";
        echo "<ul>";
        echo "<li>";
    }
    echo "<li>";
    echo "<a href=\"kategorie/".$kategorie['name_url']."\">".$kategorie['name']."</a>";
   
       $kategorien_sub = mysql_query("SELECT * FROM kategorien WHERE id_ref='".$kategorie['id']."' ORDER BY name ASC");
    $x = 1; 
    $num_rows = mysql_num_rows($kategorien_sub); 
    while($kategorie_sub = mysql_fetch_assoc($kategorien_sub))
    {
        
        echo $kategorie_sub['name'];
        if ($x != $num_rows) {
            echo ",";
            
        }

        $x++;
    }

    {
        echo "</li>";
        echo "</ul>";
    
        echo "</div>";
        $i++;
    }
}
?>
 
Als ich den Code von dir unverändert genommen habe hat es auch nicht funktioniert.
Hättest Du Dir die Mühe gemacht und den Code gelesen und das, was ich geschrieben habe, hättest Du erkennen können, dass ich den Code nicht verändert habe (abgesehen davon, dass ich nur die while-Schleife kopiert habe und nicht das erste select), sondern nur Einrückungen gemacht habe, damit man den Code überhaupt lesen kann.

Ich habe in dem Code ganz viele html tags rausgenommen nur leider wird jetzt gar nichts angezeigt.
Sowas hast Du schonmal behauptet. Hat sich rausgestellt, dass das fernab von der Wahrheit war.

Ich finde es hier außerordentlich schwer, Dir zu helfen, wenn Du nichtmal die Programmlogik verstehst. Man bekommt den Eindruck, Du schreibst immer mal wieder ein bisschen Code dazu, den irgendwer von sich gibt, oder löschst mal was, weil jemand sagt, dass da was weg muss, aber so recht weißt Du eigentlich gar nicht, was Du tust, oder?

Dir fehlen grundlegende Programmierkenntnisse, ohne die Du nur schwerlich weiterkommen wirst. Fang mit kleineren Anwendungen an und kämpf Dich da durch, oder schnapp Dir einen Datenbank-Dump (zum Testen) und geh mit Deinem Script in die Jobbörse, wenn Du schnell eine Lösung brauchst.
 
Zurück
Oben