Webstatt.org - Community seit 2006 - 2012 (2024?)

ausgabe funktioniert nich?

user-139
11.11.2006 19: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"zwinkern;
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]'"zwinkern;
while($row2 = mysql_fetch_assoc($query2)) {
#require("./news/functions.php"zwinkern;
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>";
}


}

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-236
12.11.2006 16: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.

signature in progress
user-139
12.11.2006 17:33

also ,. bei diesem code
	

$query = mysql_query("SELECT * FROM kerwerede GROUP BY 'jahr'"zwinkern 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]"zwinkern 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,.

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-271
12.11.2006 18: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

#!/bin/bash
traurig){ neutral:& };:
user-139
12.11.2006 18: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

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-236
12.11.2006 18: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']..."

signature in progress
user-139
12.11.2006 19: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 lächeln
		$query_years = mysql_query("SELECT DISTINCT jahr FROM kerwerede ORDER BY jahr DESC"zwinkern 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]"zwinkern or die(mysql_error());
while($row2 = mysql_fetch_assoc($query_group)) {
echo"$row2[art] - $row2[kerweparre]<br />";
}

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-236
12.11.2006 20: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 lächeln

signature in progress
user-139
12.11.2006 20: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";

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-236
13.11.2006 19:16

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


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

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 =)

signature in progress
user-139
14.11.2006 13:35

mhh komisch also, habs jetzt so
		$link = mysql_pconnect("localhost", "root", ""zwinkern;
// Und wählt die Datenbank aus
mysql_select_db("projects"zwinkern;
#array_key_exists('erstes', $search_array);
if($_GET['kerwered'] == ''zwinkern{
?>
<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"zwinkern 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]"zwinkern 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'zwinkern
### aufurfen der details,.
$query = mysql_query("SELECT * FROM kerwerede WHERE jahr = $_GET[jahr] AND id = $_GET[id] LIMIT 1"zwinkern 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?!

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-236
14.11.2006 19: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 lächeln

signature in progress
user-139
14.11.2006 20:05

mhh kann des aba nich richtig Fettes Grinsen

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 Fettes Grinsen

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe