Mehrere Spalten auf einer Seite abfragen?

Peter Kluge

Angesehenes Mitglied
Hallo Leute.

Und zwar habe ich auf meiner Seite eine Art Bonussystem mit verschiedenen Kategorien. Diese werden über ein CMS gepflegt. Jede Kategorie hat eine spezielle $id damit ich die Inhalte wieder ausgeben kann. Der Code für die Ausgabe ist wie folgt aufgebaut:

QUOTE

<?

$id = 103;

include($incloc."readout/readout.spez.inc.php");

?>

<table width="100%" class="dgreen">
<tr>
<th><strong>Bonussystem</strong> </th>
</tr>

<?

for ($i=1;$i<=$pos;$i++) {

?>

<tr>

<td>

<table width="100%" cellspacing = "5" cellpadding = "0" border = "0">

<?

if (file_exists($spezloc.$id."_".$spid[$i]."_tn.jpg")==1):

echo "<td width=".(bild($spezloc.$id."_".$spid[$i]."_tn.jpg","w")+10)." valign = \"top\">";

echo "<a href=aktion_step3.php?fid=".$i."><img src=".$spezloc.$id."_".$spid[$i]."_tn.jpg border=0 alt=\"zur Filmvorstellung\"></a>";

echo "</td>";

endif;

echo "<td valign = \"top\">";

echo "<b>".$titel[$i]."</b><br><br>".$text[$i]." <a href=aktion_step3.php?fid=".$i.">[mehr]</a>";

echo "</td><tr><td colspan=2 background=image/visuals/linie_punkt.png height=20></td></tr>";

?>

</table>

</td>

</tr>

<tr>

<td align="center"> 



</td>

</tr>

<?

}

?>

<tr>


<td align="center"> <div align="center"><a href="javascript:history.back(-1)">zurück</a>
</div></td>

</tr>

</table>





Nun möchte ich aber eine Art Übersichtsseite machen, wo auch die Inhalte emit der Id 104 und 105 aufgelistet werden. Hat jemand eine Idee wie ich da ran gehen könnte? Einfach ein Komma rein geht ja leider nicht.
sad.gif


Gruß Peter
 
packe den ganzen script doch einfach noch mal in eine weitere for schleife welche dann von 103 bis 105 durchlaueft
wink.gif


MfG
GP
 
So könnte es gehen. Es werden dann die Kategorien untereinander angezeigt.

Gruß

Mike



QUOTE
<?



include($incloc."readout/readout.spez.inc.php");

?>

<table width="100%" class="dgreen">
<tr>
<th><strong>Bonussystem</strong> </th>
</tr>

<?

for ($id=103;$id<=105;$i++) {

for ($i=1;$i<=$pos;$i++) {

?>

<tr>

<td>

<table width="100%" cellspacing = "5" cellpadding = "0" border = "0">

<?

if (file_exists($spezloc.$id."_".$spid[$i]."_tn.jpg")==1):

echo "<td width=".(bild($spezloc.$id."_".$spid[$i]."_tn.jpg","w")+10)." valign = \"top\">";

echo "<a href=aktion_step3.php?fid=".$i."><img src=".$spezloc.$id."_".$spid[$i]."_tn.jpg border=0 alt=\"zur Filmvorstellung\"></a>";

echo "</td>";

endif;

echo "<td valign = \"top\">";

echo "<b>".$titel[$i]."</b><br><br>".$text[$i]." <a href=aktion_step3.php?fid=".$i.">[mehr]</a>";

echo "</td><tr><td colspan=2 background=image/visuals/linie_punkt.png height=20></td></tr>";

?>

</table>

</td>

</tr>

<tr>

<td align="center"> 



</td>

</tr>

<?

}

}

?>

<tr>


<td align="center"> <div align="center"><a href="javascript:history.back(-1)">zurück</a>
</div></td>

</tr>

</table>

 
Jetzt bekomm ich diese Meldung:

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@spielwiese.pinmoney.de and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
 
ups...

versuch es mal mit

for ($id=103;$id<=105;$id++) {

statt

for ($id=103;$id<=105;$i++) {


Hab mich verschrieben...
 
Was steckt denn hinter

readout/readout.spez.inc.php

Das Lesen der Daten?

Evtl. muss das auch noch in die Schleife...
 
So, jetzt bekomm ich zwar eine Ergebnis aber nicht den gewünschten Text der sich in Spalte 10... befindet.
Keine Ahnung wo der den Text her nimmt.

In readout befindet sich:

QUOTE

<?
$res = @mysql_query("SELECT * FROM spezial WHERE id = '$id'", $handler);

$row = @mysql_fetch_array($res);

$bezeichnung = $row[bezeichnung];
$beschreibung = $row[beschreibung];
$anordnung = $row[anordnung];

$res = @mysql_query("SELECT id,titel,kurztext,langtext,position,tchange FROM spezial_text WHERE spezial_id = '$id' AND sprache = '$lang' ORDER BY position", $handler);
$num = @mysql_numrows($res);

for ($i=1;$i<=$num;$i++) {
$row = @mysql_fetch_array($res);
$pos = $row[position];
$titel[$pos]= $row[titel];
$text[$pos] = $row[kurztext];
$ltext[$pos]= $row[langtext];
$chan[$pos] = $row[tchange];
$spid[$pos] = $row[id];
}
?>






 
QUOTE
<table width="100%" class="dgreen">
<tr>
<th><strong>Bonussystem</strong> </th>
</tr>

<?

for ($id=103;$id<=105;$id++) {

include($incloc."readout/readout.spez.inc.php");
for ($i=1;$i<=$pos;$i++) {

?>

<tr>

<td>

<table width="100%" cellspacing = "5" cellpadding = "0" border = "0">

<?

if (file_exists($spezloc.$id."_".$spid[$i]."_tn.jpg")==1):

echo "<td width=".(bild($spezloc.$id."_".$spid[$i]."_tn.jpg","w")+10)." valign = \"top\">";

echo "<a href=aktion_step3.php?fid=".$i."><img src=".$spezloc.$id."_".$spid[$i]."_tn.jpg border=0 alt=\"zur Filmvorstellung\"></a>";

echo "</td>";

endif;

echo "<td valign = \"top\">";

echo "<b>".$titel[$i]."</b><br><br>".$text[$i]." <a href=aktion_step3.php?fid=".$i.">[mehr]</a>";

echo "</td><tr><td colspan=2 background=image/visuals/linie_punkt.png height=20></td></tr>";

?>

</table>

</td>

</tr>

<tr>

<td align="center"> 



</td>

</tr>

<?

}

}

?>

<tr>


<td align="center"> <div align="center"><a href="javascript:history.back(-1)">zurück</a>
</div></td>

</tr>

</table>



sollte funktionieren
wink.gif


MfG
GP
 
Habs mal getestet. Also mit include gehts nicht aber wenn ich den Code zu reinschreibe funktioniert es.
Gibt es noch eine Möglichkeit den Bereich anders festzulegen?

Also es müsste die id 62 und der Bereich von 102 bis 105 ausgelesen werden.

Sprich: for ($id=101;$id<=105;$id++) {

Oder einfach noch ne Schleife?
 
QUOTE Habs mal getestet. Also mit include gehts nicht aber wenn ich den Code zu reinschreibe funktioniert es.


hmmm... stimmt readout/readout.spez.inc.php müsste eine Funktion enthalten, die könntest Du dann in der Schleife aufrufen... hatte nicht daran gedacht...


QUOTE Gibt es noch eine Möglichkeit den Bereich anders festzulegen?

Also es müsste die id 62 und der Bereich von 102 bis 105 ausgelesen werden.

Sprich: for ($id=101;$id<=105;$id++) {

Oder einfach noch ne Schleife?


Aus meiner Sicht musst Du dann mit einem Array arbeiten und dem die ID-Werte zuordnen, die Du dann per Schleife abarbeitest.
siehe Array

cool.gif
 
Also wenn ich es mit Array machen zeigt es mir gar nicht an:

QUOTE

<?
$id = array ( "103" , "104" );

$res = @mysql_query("SELECT * FROM spezial WHERE id = '$id'", $handler);

$row = @mysql_fetch_array($res);

$bezeichnung = $row[bezeichnung];
$beschreibung = $row[beschreibung];
$anordnung = $row[anordnung];

$res = @mysql_query("SELECT id,titel,kurztext,langtext,position,tchange FROM spezial_text WHERE spezial_id = '$id' AND sprache = '$lang' ORDER BY position", $handler);
$num = @mysql_numrows($res);

for ($i=1;$i<=$num;$i++) {
$row = @mysql_fetch_array($res);
$pos = $row[position];
$titel[$pos]= $row[titel];
$text[$pos] = $row[kurztext];
$ltext[$pos]= $row[langtext];
$chan[$pos] = $row[tchange];
$spid[$pos] = $row[id];
}

?>
<table width="100%" class="dgreen">
<tr>
<th>Bonussystem</th>
</tr>
<tr>
<?
echo "<td valign = \"top\">";
if (file_exists($spezloc.$id."_".$spid[$zufall]."_tn.jpg")==1):
echo "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" align=\"right\"><tr>";
echo "<td width=".(bild($spezloc.$id."_".$spid[$zufall]."_tn.jpg","w")+10)." valign = \"top\" align=\"right\">";
if ($llink):
echo "<a href=linker.php?file=".urlencode($llink)." target = _blank><img src=".$spezloc.$id."_".$spid[$zufall]."_tn.jpg border=0 align=right alt=\"".$lname."\"></a>";
else:
echo "<img src=".$spezloc.$id."_".$spid[$zufall]."_tn.jpg>";
endif;
echo "</td>";
echo "</tr></table>";
endif;

//echo "<div align = \"justify\">";
echo "<br><b><font color=#FF6600>".$titel[$zufall]."</b></font><br>".$ltext[$zufall]."".$links."<br>";
//echo "</div>";
echo "</td>";
?>
</tr>
</table>
<?
unset($llink);
unset($lname);
unset($links);
?>




 
Mein Vorschlag sieht so aus:

QUOTE
<table width="100%" class="dgreen">
<tr>
<th><strong>Bonussystem</strong> </th>
</tr>

<?

$myArray = array(62, 102, 103, 104, 105);

$myArrayLength = count($myArray);

for ($j = 0; $j < $myArrayLength; $j++){

$id = $myArray[$j];


// Code aus readout/readout.spez.inc.php
$res = @mysql_query("SELECT * FROM spezial WHERE id = '$id'", $handler);
$row = @mysql_fetch_array($res);
$bezeichnung = $row[bezeichnung];
$beschreibung = $row[beschreibung];
$anordnung = $row[anordnung];
$res = @mysql_query("SELECT id,titel,kurztext,langtext,position,tchange FROM spezial_text WHERE spezial_id = '$id' AND sprache = '$lang' ORDER BY position", $handler);
$num = @mysql_numrows($res);
for ($i=1;$i<=$num;$i++) {
$row = @mysql_fetch_array($res);
$pos = $row[position];
$titel[$pos]= $row[titel];
$text[$pos] = $row[kurztext];
$ltext[$pos]= $row[langtext];
$chan[$pos] = $row[tchange];
$spid[$pos] = $row[id];
}



for ($i=1;$i<=$pos;$i++) {

?>

<tr>

<td>

<table width="100%" cellspacing = "5" cellpadding = "0" border = "0">

<?

if (file_exists($spezloc.$id."_".$spid[$i]."_tn.jpg")==1):

echo "<td width=".(bild($spezloc.$id."_".$spid[$i]."_tn.jpg","w")+10)." valign = \"top\">";

echo "<a href=aktion_step3.php?fid=".$i."><img src=".$spezloc.$id."_".$spid[$i]."_tn.jpg border=0 alt=\"zur Filmvorstellung\"></a>";

echo "</td>";

endif;

echo "<td valign = \"top\">";

echo "<b>".$titel[$i]."</b><br><br>".$text[$i]." <a href=aktion_step3.php?fid=".$i.">[mehr]</a>";

echo "</td><tr><td colspan=2 background=image/visuals/linie_punkt.png height=20></td></tr>";

?>

</table>

</td>

</tr>

<tr>

<td align="center"> 



</td>

</tr>

<?

}

}

?>

<tr>


<td align="center"> <div align="center"><a href="javascript:history.back(-1)">zurück</a>
</div></td>

</tr>

</table>
 
Muß ich unten noch

QUOTE
<?
unset($llink);
unset($lname);
unset($links);
?>



einfügen? Aber jetzt klappt es super. Das einzige Problem was es jetzt noch gibt ist die Verlinkung


QUOTE
echo "<a href=aktion_step3.php?fid=".$i."><img src=".$spezloc.$id."_".$spid[$i]."_tn.jpg border=0 alt=\"zur Filmvorstellung\"></a>";



Da ich verschiedene Rubriken habe wird jetzt alles über aktion_step3.... aufgerufen. Je nach Kategorie müste aber auch es flexibel sein also step1, step2 usw.

 
Zurück
Oben