Kezdőoldal » Számítástechnika » Weblapkészítés » PHP függvényekkel ismétlődő...

PHP függvényekkel ismétlődő sorozat és tömbkészítést hogy lehet megcsinálni?

Figyelt kérdés

adott egy szépen működő php kódom. de ha pl meg akarok változtatni benne egy felsorolás szerű kódot akkor nem szeretnék manuálisan pötyögni egy csomót ha azt egy függvénnyel is ki tudom váltani.


látszik a listán hogy ismétlődik és speciel most csak 24-szer van leírva ugyan az a kiszámolható tömbelem de képzeljünk el olyan listákat is ahol 50-ig vagy 100-ig meg a számláló, és ha azon a tömbön meg kell változtatni valamit akkor végig kell írni újra az egészet.


szóval egy olyan függvény kellene ami egy visszamenő pontig addig ismételi az értékeket és műveleteket, amíg egy megadott számot, jelen esetben 24 tömbelemet el nem ér


<?php


$ff = $_GET['ff'];


$kulcs = substr($ff, 0, 2);


if ($kulcs==01) print "1-50 ";

if ($kulcs<>01) print '<a href="listazo.php?ff=01_01x50_0000-0500_00" target="_top">1-50</a> ';

if ($kulcs==02) print "51-100 ";

if ($kulcs<>02) print '<a href="listazo.php?ff=02_51x00_0000-0500_00" target="_top">51-100</a> ';

if ($kulcs==03) print "101-150 ";

if ($kulcs<>03) print '<a href="listazo.php?ff=03_01x50_0000-0500_01" target="_top">101-150</a> ';

if ($kulcs==04) print "151-200 ";

if ($kulcs<>04) print '<a href="listazo.php?ff=04_51x00_0000-0500_01" target="_top">151-200</a> ';

if ($kulcs==05) print "201-250 ";

if ($kulcs<>05) print '<a href="listazo.php?ff=05_01x50_0000-0500_02" target="_top">201-250</a> ';

if ($kulcs==06) print "251-300 ";

if ($kulcs<>06) print '<a href="listazo.php?ff=06_51x00_0000-0500_02" target="_top">251-300</a> ';

if ($kulcs==07) print "301-350 ";

if ($kulcs<>07) print '<a href="listazo.php?ff=07_01x50_0000-0500_03" target="_top">301-350</a> ';

if ($kulcs==08) print "351-400 ";

if ($kulcs<>08) print '<a href="listazo.php?ff=08_51x00_0000-0500_03" target="_top">351-400</a> ';

if ($kulcs==09) print "401-450 ";

if ($kulcs<>09) print '<a href="listazo.php?ff=09_01x50_0000-0500_04" target="_top">401-450</a> ';

if ($kulcs==10) print "451-500 ";

if ($kulcs<>10) print '<a href="listazo.php?ff=10_51x00_0000-0500_04" target="_top">451-500</a> ';


print "<br>";


if ($kulcs==11) print "501-550 ";

if ($kulcs<>11) print '<a href="listazo.php?ff=11_01x50_0500-1000_05" target="_top">501-550</a> ';

if ($kulcs==12) print "551-600 ";

if ($kulcs<>12) print '<a href="listazo.php?ff=12_51x00_0500-1000_05" target="_top">551-600</a> ';

if ($kulcs==13) print "601-650 ";

if ($kulcs<>13) print '<a href="listazo.php?ff=13_01x50_0500-1000_06" target="_top">601-650</a> ';

if ($kulcs==14) print "651-700 ";

if ($kulcs<>14) print '<a href="listazo.php?ff=14_51x00_0500-1000_06" target="_top">651-700</a> ';

if ($kulcs==15) print "701-750 ";

if ($kulcs<>15) print '<a href="listazo.php?ff=15_01x50_0500-1000_07" target="_top">701-750</a> ';

if ($kulcs==16) print "751-800 ";

if ($kulcs<>16) print '<a href="listazo.php?ff=16_51x00_0500-1000_07" target="_top">751-800</a> ';

if ($kulcs==17) print "801-850 ";

if ($kulcs<>17) print '<a href="listazo.php?ff=17_01x50_0500-1000_08" target="_top">801-850</a> ';

if ($kulcs==18) print "851-900 ";

if ($kulcs<>18) print '<a href="listazo.php?ff=18_51x00_0500-1000_08" target="_top">851-900</a> ';

if ($kulcs==19) print "901-950 ";

if ($kulcs<>19) print '<a href="listazo.php?ff=19_01x50_0500-1000_09" target="_top">901-950</a> ';

if ($kulcs==20) print "951-1000 ";

if ($kulcs<>20) print '<a href="listazo.php?ff=20_51x00_0500-1000_09" target="_top">951-1000</a> ';

if ($kulcs==21) print "1001-1050 ";

if ($kulcs<>21) print '<a href="listazo.php?ff=21_01x50_1000-1197_10" target="_top">1001-1050</a> ';

if ($kulcs==22) print "1051-1100 ";

if ($kulcs<>22) print '<a href="listazo.php?ff=22_51x00_1000-1197_10" target="_top">1051-1100</a> ';

if ($kulcs==23) print "1101-1150 ";

if ($kulcs<>23) print '<a href="listazo.php?ff=23_01x50_1000-1197_11" target="_top">1101-1150</a> ';

if ($kulcs==24) print "1151-1197 ";

if ($kulcs<>24) print '<a href="listazo.php?ff=24_51x97_1000-1197_11" target="_top">1151-1197</a> ';


?>


2011. márc. 12. 13:20
1 2
 11/16 anonim ***** válasza:

Azt azért nem merném mondani, hogy fejezd be kedves kérdező. :)

A sok kódból azt gondolom, hogy érdekel a téma, és így legalább egyedül tanulod meg a dolgokat... De egy PHP 24 óra alatt vagy hasonló könyvbe belekukkanthatsz, ha akarsz. :D

2011. márc. 14. 21:06
Hasznos számodra ez a válasz?
 12/16 MultiVadász ***** válasza:
Szerintem nincs sok értelme, mert utána úgyis arra jutna, hogy az egészet revízionálná és újraírná, szóval így produktívabb.
2011. márc. 14. 21:16
Hasznos számodra ez a válasz?
 13/16 anonim ***** válasza:
Szerintem is az ujrairas a megoldas. Talan 5 sorba bele is lehet szoritani az egeszet, de max 10-be. :)
2011. márc. 15. 01:03
Hasznos számodra ez a válasz?
 14/16 A kérdező kommentje:

ha a végeredményre vagytok kíváncsiak akkor így néz ki egy képgaléria oldal nálam eddig :


szóval 50 kisképet jelenít meg egy oldalon és összesen 1197 fotó van a képgalériában.


menu.php :


<?php


$oldal = $_GET['oldal'];

$ciklus = 1;


do {


$szoveg_01 = ((($ciklus-1)*50)+1)."-".($ciklus*50)." ";


if ($ciklus==$oldal) print $szoveg_01;

if ($ciklus<>$oldal) {

print '<a href="kepgaleria.php?oldal=';

print $ciklus;

print '" target="_top">'.$szoveg_01.'</a> ';

}


++$ciklus;


} while ($ciklus < 24);


if ($ciklus==$oldal) print "1151-1197 ";

if ($ciklus<>$oldal) print '<a href="kepgaleria.php?oldal=24" target="_top">1151-1197</a> ';


?>


---------------------------------------------


kepgaleria.php :


<?php


include ("fej.php");


print "<br><br>";


include ("cimkek.php");


print "<center>";


print "<br><br>";


include ("menu.php");


print "<br><br>";


$oldal = $_GET['oldal'];


$ciklus = ($oldal*50)-49;

$ciklus_vege = ($oldal*50)+1;


if ($oldal<=25) $mappa = "1000-1197";

if ($oldal<=20) $mappa = "0500-1000";

if ($oldal<=10) $mappa = "0000-0500";


if ($oldal==24) $ciklus_vege = 1198;


do {


$szamol_01 = $ciklus;


$a1ezresek = substr($szamol_01, -4, -3);

$a2szazasok = substr($szamol_01, -3, -2);

$a3tizesek = substr($szamol_01, -2, -1);

$a4egyesek = substr($szamol_01, -1, 1);


if ($a1ezresek==false) $a1ezresek=0;

if ($a2szazasok==false) $a2szazasok=0;

if ($a3tizesek==false) $a3tizesek=0;

if ($a4egyesek==false) $a4egyesek=0;


$eredmeny_01 = $a1ezresek.$a2szazasok.$a3tizesek.$a4egyesek;


print "<a";

print ' href="kep.php?id='.$eredmeny_01.'" target="_blank"><img';

print ' src="Galeria/'.$mappa.'/kicsi/'.$eredmeny_01.'.jpg"></a>   ';


++$ciklus;


} while ($ciklus < $ciklus_vege);


print "<br><br>";


include ("menu.php");


print "<br><br>";


include ("utotag.php");


?>


</center>


</body>

<html>

2011. márc. 15. 17:55
 15/16 anonim ***** válasza:

Ez sokkal szebb, mint az eddigiek.

Nagyon ügyes vagy, hogy ezt magadtól megcsináltad szinte nulláról indulva! Még szinte irigyellek is érte. :)


Csak így tovább!

2011. márc. 15. 18:28
Hasznos számodra ez a válasz?
 16/16 MultiVadász ***** válasza:

Nem foglak megdicsérni, mert még nem érdemled ki.


"

$ciklus = 1;


do {


$szoveg_01 = ((($ciklus-1)*50)+1)."-".($ciklus*50)." ";


if ($ciklus==$oldal) print $szoveg_01;

if ($ciklus<>$oldal) {

print '<a href="kepgaleria.php?oldal=';

print $ciklus;

print '" target="_top">'.$szoveg_01.'</a> ';

}


++$ciklus;


} while ($ciklus < 24); "



Na most ezzel csak egy dolog van: az, hogy (idézzem a matektanáromat) bugacpusztai megoldás. (Nem pejoratív, arra utal a kifejezés, hogy lehet ezt elegánsabban is.)


Miért mondom én ezt? Csak azért, mert egy hátultesztelő ciklust használsz, ahol a ciklusfeltételben (tov. CF) változót csak inkrementálod minden lépésben.


Következésképpen ez egy növekményes ciklus (egyes tájakon for-ciklusnak gúnyolják.)


Többet nem mondok, remélem megmozgattam a fantáziád. :D

2011. márc. 17. 20:11
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!