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

Komma

xXxPeterPanxXx

Neues Mitglied
Moin Moin,
ich bin wieder ein bisschen an meiner Website und habe da nun ein Problem, ich will nach jeder Unterkategorie ein Komma haben. Ich weiss aber nur wie man das mit "." macht nur da würde bei der letzten Unterkategorie ka auch ein Komma angezeigt werden.
Code:
<?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");
while ($kategorie_sub = mysql_fetch_array($kategorien_sub))
{
echo $kategorie_sub['name'];
}
{
echo "</li>";
}
echo "</ul>";
$i++;
}
?>
Danke im Vorraus!

mfg xXxPeterPanxXx
 
ja du musst halt herausfinden welches der letzte ist damit du da keins hinmachst... ganz einfach oder an was hast du gedacht? ^^
 
PHP:
<?php
$num_rows = mysql_num_rows($kategorien); 
$m=0;
while ($kategorie = mysql_fetch_array($kategorien) && $m<$num_rows)
{
echo "...".",";
$m++;
}
echo "...";
So etwa würd ich das machen.

Mfg Mo3b
 
Zuletzt bearbeitet:
Wie leider immer kriege ich es nicht hin. Es wird immoment immer ein Buchstabe mehrmal Ausgegeben.

Hier der veränderte Code:
Code:
{
$kategorie_sub = substr($kategorie_sub,-1);
echo $kategorie_sub['name'] . "," . ' ';
}
 
Was hast du gegen meine Lösung ? ;)
Okay ich probier sie :D

Bei mir passiert nichts :D
Code:
$kategorien_sub = mysql_query("SELECT * FROM kategorien WHERE id_ref='".$kategorie['id']."' ORDER BY name ASC");
$m = 0;
while ($kategorie_sub = mysql_fetch_array($kategorien_sub))
{
echo $kategorie_sub['name'] . "," . ' ';
$m++;
}
 
Zuletzt bearbeitet:
Du müsstest ja auch erstmal meine Lösung testen ;)

Zm Einen brauchst du
PHP:
$num_rows = mysql_num_rows($kategorien_sub);
Dies gibt dir die Anzahl deiner Ergebnisse aus.

Dies prüfst du dann in der while Schleife:

PHP:
while ($kategorie_sub = mysql_fetch_array($kategorien_sub) && $m<$num_rows)
Wenn du jetzt beim letzten Eintrag angekommen bist, wird die While-Schleife beendet.
 
PHP:
$x = 1;
$num_rows = mysql_num_rows($query_resource);
while(($row = mysql_fetch_assoc($query_resource))) {
    /* ... */
    if($x != $num_rows) {
        echo ',';
    }

     $x++;
}

so ungefähr würde ich es machen aber da hättest auch selbst drauf kommen können ^^
 
So,
Entschuldigung das ich erst jetzt anworten kann, aber es gibt auch noch was anderes im Leben.
Ich wollte das mal so machen wie Slibbo vorgeschlagen hat, nur leider werden nun nur noch die Hauptkategorien ausgegeben.
Code:
<?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($row = mysql_fetch_assoc($kategorien_sub)) {
/* ... */ 
if($x != $num_rows) { 
echo ',';
    }

     $x++;
} 
echo $kategorie_sub['name'];

}
{
echo "</li>";
}
{
echo "</ul>";
$i++;
}
?>
 
naja les doch mal was du geschriben hast:

PHP:
while($row = mysql_fetch_assoc($kategorien_sub)) {
/* ... */ 
if($x != $num_rows) { 
echo ',';
    }

     $x++;
} 
echo $kategorie_sub['name'];

Achte mal auf die Klammern. Du schließt die while-Schleife und schreibst erst danach!!
PHP:
echo $kategorie_sub['name'];

Sliboo hat mit /* ... */ auch wohl dein eigentlichen Inhalt gemeint.

Das Ganze müsste so aussehen:

PHP:
while($row = mysql_fetch_assoc($kategorien_sub)) {
echo $kategorie_sub['name'];
if($x != $num_rows) { 
echo ',';
    }

     $x++;
}

Mfg Mo3b
 
So,
Danke für eure Hilfe, es wird noch nicht richtig angezeigt, aber ich vermute das ich mich irgentwo vertippt habe.

Mit eurere Hilfe habe ich das geschafft:
Code:
<?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($row = mysql_fetch_assoc($kategorien_sub)) {
echo $kategorie_sub['name'];
if($x != $num_rows) {
echo ",";
    }

     $x++;
}
{
echo "</li>";
}
{
echo "</ul>";
$i++;
}
}
?>
 
Ja mein Fehler, da habe ich nicht so genau hingeschaut.

Änder mal das Argument der while-Schleife:

PHP:
while($kategorie_sub = mysql_fetch_assoc($kategorien_sub))
 
Zurück
Oben