Willkommen in der Webstatt Zum Webstatt Blog und Stories
Bonze am 11.11.06 20:32

möchte das aus meiner db etwas nach nem jahr sortiert ausgegeben wird,.

also
Jahr 2006
-Kerwered
-Grabred
Jahr2005
-...

so hier mein code
bekomme so aber garkeine ausgabe,.

$query = mysql_query("SELECT * FROM kerwerede GROUP BY jahr");
while($row = mysql_fetch_assoc($query)) {
echo"
<tr>
<td class=\"jahr\">$row[jahr]</td>
</tr>
";
echo"$row[jahr]";

$query2 = mysql_query("SELECT * FROM kerwerede WHERE jahr='$row[jahr]'");
while($row2 = mysql_fetch_assoc($query2)) {
#require("./news/functions.php");
echo"<tr>
<td class=\"parre\"><a href=\"?page=kerwered&amp;kerwered=show&amp;johr=$row2[jahr]\"><img src=\"admin/images/pfeil_b.png\" width=\"16\" height=\"16\" border=\"0\">$row2[Kerweparre]</a></b></td>
</tr>";
}


}

netcup.de Warum gibt es hier Werbung?
mab mab am 12.11.06 17:05

kann gut sein, dass mit der Gruppierung etwas nicht simmt. Normal solltest du die Abfragen in ein Statement packen. Mach zur Fehlerbehebung erst mal folgendes:

"or die(mysql_error())" und per echo die Queries ausgeben. Damit kannst du mal schauen wie die Abfrage überhaupt aussieht. Solltest nicht drauf kommen, dann poste mal die DB Struktur.

Bonze am 12.11.06 18:33

also ,. bei diesem code

$query = mysql_query("SELECT * FROM kerwerede GROUP BY 'jahr'") or die(mysql_error());
while($row = mysql_fetch_assoc($query)) {
echo"
$row[jahr] | $row[kerweparre]<br />";
echo"$query";
$query2 = mysql_query("SELECT * FROM kerwerede WHERE 'jahr'= $row[jahr]") or die(mysql_error());
while($row2 = mysql_fetch_assoc($query2)) {
echo"$row2[art]";
echo"$query2";
}


}


bekomme ich folgende ausgabe 2004 | stefan anstett
Resource id #6 2005 | stefan anstett
Resource id #6 2006 | anstett andreas
Resource id #6



es scheint so als ob der2 query nich richtig geht,.

nuit nuit am 12.11.06 19:12

häh wieso sollte der nicht gehn? versteh nicht was du haben willst? das Resource ID wird von der Ausgabe von $query2 erzeugt ???

edit: wie sieht eigentlich deine Db aus ;D ich versteh nicht ganz wie das gespeichert ist

Bonze am 12.11.06 19:34

ich will halt einfach das nach jahren sortiert haben

2006
-art1 Kerweparre
-art2 Kerweparre


2005
[I]-art1 Kerweparre
-art2 Kerweparre[/

2004
[I]-art1 Kerweparre
-art2 Kerweparre[/


so sollte die ausgabe aussehen
meine db sieht so aus

id|jahr|kerweparre|art|text

mab mab am 12.11.06 19:58

wenn du es unbedingt über die zwei queries machen möchtest, dann geht das in etwa so:

$query_years = "SELECT DISTINCT jahr FROM tab ORDER BY jahr ...."

$query_group = "SELECT id... FROM tab WHERE jahr = $row['jahr']..."

Bonze am 12.11.06 20:53

ich denke halt das es so am besten ist, eil ich nur manchaml 2 datensätze pro jahr hab ,.
und ich so ähnlich auch ne linkliste hab ,.
die genauso nach kats sortiert,.


ok

so gehts :)
$query_years = mysql_query("SELECT DISTINCT jahr FROM kerwerede ORDER BY jahr DESC") or die(mysql_error());
while($row = mysql_fetch_assoc($query_years)) {
echo"<br />$row[jahr]<br /> ";

$query_group = mysql_query("SELECT * FROM kerwerede WHERE jahr = $row[jahr]") or die(mysql_error());
while($row2 = mysql_fetch_assoc($query_group)) {
echo"$row2[art] - $row2[kerweparre]<br />";
}

mab mab am 12.11.06 21:31

klar, bei den Kategorien ist es eigentlich genau das gleiche.

tabelle: kategorien

kid | name | datum


tabelle: irgendwas

id | kid | eintraege | datum


dann gehst du per Left Join oder sonst wie.. auf deine Tabellen. Damit hast du 1 Query, schnell und sauber. Natürlich kannst du das auch mit distinct machen, würde mich aber irgendwie stören :)

Bonze am 12.11.06 21:35

ne hast mich falsch verstanden bei den links hab ich die kat in der selben tabelle, und so ging es wie es oben als erstes war,.


mhh irgendwie muss ich mir nur ma was mit der übersichtlichkeit der ausgabe einfallen lassen ,.
apropo, ein normales mysql_num_rows geht hier nich richtig, sonst ne ide? die anzahl der jahre bekomme ich noch raus aba nich die anzahl der eintraege,.

EDIT; naja war doch ganz einfach dank der schleife, einfach $reden++
und dann echo"$reden";

mab mab am 13.11.06 20:16

Quote
ne hast mich falsch verstanden bei den links hab ich die kat in der selben tabelle


:D hab dich schon richtig verstanden und das solltest du gerade vermeiden! wegen der performance und deswegen:

Quote
mhh irgendwie muss ich mir nur ma was mit der übersichtlichkeit der ausgabe einfallen lassen


wenn es dich nicht stört, dann kannst es ja so lassen... wird bei ein paar einträge ja nix machen =)

Bonze am 14.11.06 14:35

mhh komisch also, habs jetzt so
$link = mysql_pconnect("localhost", "root", "");
// Und wählt die Datenbank aus
mysql_select_db("projects");
#array_key_exists('erstes', $search_array);
if($_GET['kerwered'] == ''){
?>
<div align="center">
<table class="tabelle weiss">
<tr>
<td width="10%">Jahr</td>
<td width="50%"></td>
<td width="40%">Kerweparrer</td>
</tr>
<?php
$reden = 0;
$query_years = mysql_query("SELECT DISTINCT jahr FROM kerwerede ORDER BY jahr DESC") or die(mysql_error());
while($row = mysql_fetch_assoc($query_years)) {
$anzahl_jahre = mysql_num_rows($query_years);
?>
<tr>
<td><?php echo "<img src=\"style/pfeil_b.png\" width=\"16\" height=\"16\" alt=\"pfeil\"/>$row[jahr]";?></td>
<td></td>
<td></td>
</tr>
<?php
$query_group = mysql_query("SELECT * FROM kerwerede WHERE jahr = $row[jahr]") or die(mysql_error());
while($row2 = mysql_fetch_assoc($query_group)) {
$reden++
?>
<tr>
<td></td>
<td><?php echo "<a href=\"?page=kerwered&amp;kerwered=show&amp;jahr=$row[jahr]&amp;id=$row2[id]\">$row2[art]</a>";?></td>
<td><?php echo "$row2[kerweparre]";?></td>
</tr>
<?php
}
}
?>


</table>
</div>
<br />
<?php echo "<div align=\"center\">Anzahl Jahre: $anzahl_jahre - Anzahl Reden: $reden</div>"?>

<?php
}elseif($_GET['kerwered'] == 'show')
### aufurfen der details,.
$query = mysql_query("SELECT * FROM kerwerede WHERE jahr = $_GET[jahr] AND id = $_GET[id] LIMIT 1") or die(mysql_error());
while($row = mysql_fetch_assoc($query)) {
?>
<div align="center"><table class="tabelle weiss">
<tr>
<td class="parre">Kerweparre<img src="style/pfeil_b.png" width="16" height="16" alt="pfeil" border="0"/><?php echo"$row[kerweparre]"?></td>
<td class="jahr">Jahr:<?php echo"$row[jahr]"?></td>
</tr>
<tr>
<td class="red"><br /><?php echo"$row[text]"?></td>
</tr>
</table>
</div>
<?php
}
#}
?>
<br />
</td>
</tr>
</table>
</div>


allerdings scheint das nich so richtig zu klappen , bekome fehler wegen der If abfrage

der link zu den Kerwereden ist

?page=kerwered

der link zu den details
?page=kerwered&id=23&jahr=2006

wie mache ich die if abfrage so das sie keine fehler mehr produtiert?!

mab mab am 14.11.06 20:32

auf den ersten Blick würd ich sagen mit dem else zweig stimmt was nicht. du könntest deinen code auch mal richtig einrücken... sieht derbe aus :)

Bonze am 14.11.06 21:05

mhh kann des aba nich richtig :D

so habs hinbekommen es fehlte 1. bei dem elif ne öffnenende Klammer{
und dann hab ich bei der if anweisung, !array_key_exists genommen jetzt funzts wunderbar ohne fehlermeldung :D

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt