Anfänger Problem: variable hochzählen und/oder reseten
Kerstin2
- php
0 MudGuard0 Kerstin2
0 Tabellenkalk0 Auge
Hi,
habe ein kleines Script das läuft und funktioniert, allerdings bin ich mit dem Code unzufrieden, das muss doch eleganter gehen, aber ich stehe momentan komplett auf dem Schlauch.
Mache eine DB-abfrage und erhalte so die max Anzahl der gewählten Datensätze ($max).
Von diesen Datensätzen zeige ich einen komplett an ($current). Es sollen die vier folgenden Datensätze klein angezeigt werden bzw. wenn es nicht mehr vier weitere gibt, das Array wieder von vorne ausgelesen werden. Wie gesagt habe ein work-around geschrieben, wäre aber dankbar wenn mir jemand sagen könnte wie man das vernünftig und ohne große Redundanz machen könnte (will ja was lernen)...
Hier mein Code snippet für die Anzeige der folgenden Datensätze:
<?php
if($max-$current>4)
{
?>
<img src="<?php echo $resultArray[$current+1]["p_name"];?>" height="100" border="0">
<img src="<?php echo $resultArray[$current+2]["p_name"];?>" height="100" border="0">
<img src="<?php echo $resultArray[$current+3]["p_name"];?>" height="100" border="0">
<img src="<?php echo $resultArray[$current+4]["p_name"];?>" height="100" border="0">
<?php
}
elseif($max-$current>3)
{
?>
<img src="<?php echo $resultArray[$current+1]["p_name"];?>" height="100" border="0">
<img src="<?php echo $resultArray[$current+2]["p_name"];?>" height="100" border="0">
<img src="<?php echo $resultArray[$current+3]["p_name"];?>" height="100" border="0">
<img src="<?php echo $resultArray[0]["p_name"];?>" height="100" border="0">
<?php
}
elseif($max-$current>2)
{
?>
<img src="<?php echo $resultArray[$current+1]["p_name"];?>" height="100" border="0">
<img src="<?php echo $resultArray[$current+2]["p_name"];?>" height="100" border="0">
<img src="<?php echo $resultArray[0]["p_name"];?>" height="100" border="0">
<img src="<?php echo $resultArray[1]["p_name"];?>" height="100" border="0">
<?php
}
elseif($max-$current>1)
{
?>
<img src="<?php echo $resultArray[$current+1]["p_name"];?>" height="100" border="0">
<img src="<?php echo $resultArray[0]["p_name"];?>" height="100" border="0">
<img src="<?php echo $resultArray[1]["p_name"];?>" height="100" border="0">
<img src="<?php echo $resultArray[2]["p_name"];?>" height="100" border="0">
<?php
}
else
{
?>
<img src="<?php echo $resultArray[0]["p_name"];?>" height="100" border="0">
<img src="<?php echo $resultArray[1]["p_name"];?>" height="100" border="0">
<img src="<?php echo $resultArray[2]["p_name"];?>" height="100" border="0">
<img src="<?php echo $resultArray[3]["p_name"];?>" height="100" border="0">
<?php
}
Hi,
Von diesen Datensätzen zeige ich einen komplett an ($current). Es sollen die vier folgenden Datensätze klein angezeigt werden bzw. wenn es nicht mehr vier weitere gibt, das Array wieder von vorne ausgelesen werden.
$current + x modulo Anzahl der Array-Elemente.
Modulo-Operator ist %
cu,
Andreas
Na klar, Modulus (an den Kopf schlag....) - danke!!!
Hallo,
als Anfänger solltest du dich dringend mit Kontrollstrukturen beschäftigen. Hier würde sich vorallem die For-Schleife anbieten.
Gruß
Kalk
Hallo
… ohne große Redundanz machen …
Abgesehen vom bereits gesagten kannst du einen Großteil der Redundanz loswerden, wenn du, mit welcher Lösung auch immer, nicht den HTML-Quelltext zusammensetzt, sondern es an dieser Stelle bei der Ermittlung der Dateinamen belässt. Für die untenstehenden Beispiele nehme ich mal an, die ermittelten Dateinamen stünden im Array $dateiNamenArray
.
Hinterher hast du nur noch einen HTML-Block, in dem du die Dateinamen in das src-Attribut einfügst.
<img src="[code lang=php]<?php echo $dateiNamenArray[0];?>
" height="100" border="0">
<img src="<?php echo $dateiNamenArray[1];?>
" height="100" border="0">
<img src="<?php echo $dateiNamenArray[2];?>
" height="100" border="0">
<img src="<?php echo $dateiNamenArray[3];?>
" height="100" border="0">[/code]
Wenn sich an dieser Stelle außer dem Inhalt von src
_absolut_nichts_ unterscheidet, kannst du das auch in einer Schleife erledigen. Ich wechsle hier mal nicht zwischen PHP- und HTML-Kontext.
<?php
foreach ($dateiNamenArray as $dnArray) {
echo '[code lang=html]<img src="[code lang=php]'. $dnArray .'
~~~" height="100" border="0">[/code]'. [PHP_EOL](http://php.net/manual/de/reserved.constants.php);
}
?>[/code]
Tschö, Auge
--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
[Veranstaltungsdatenbank Vdb 0.3](http://termindbase.auge8472.de/)