Autor Zpráva
Fred
Profil
Předem se moc omlouvám za pravděpodobně špatnou formulaci dotazu, neumím php, a kdybych věděl jak položit otázku tak bych to zkusil vygooglovat. Bude to asi nejspíš jednoduché, sorry.
mám něco takového, jenže to číslo se zvyšuje až do 120, jak lze takový zápis zkrátit??
if ($thisImage=="img1") {
$nazev=$nazev1;
$meta=$meta1;
$image=$image1;
$width=$width1;
$height=$height1;
$page=$page1;
}
if ($thisImage=="img2") {
$nazev=$nazev2;
$meta=$meta2;
$image=$image2;
$width=$width2;
$height=$height2;
$page=$page2;
}
atd ..... až po
if ($thisImage=="img120") {
$nazev=$nazev120;
$meta=$meta120;
$image=$image120;
$width=$width120;
$height=$height120;
$page=$page120;
}
DoubleThink
Profil *

for($i = 1; $i <= 120; $i++){
if ($thisImage == "img".$i) {
$nazev=eval("\$nazev".$i);
$meta=eval("\$meta".$i);
$image=eval("\$image".$i);
$width=eval("\$width".$i);
$height=eval("\$height".$i);
$page=eval("\$page".$i);
}
}




Někdo to zkontrolujte - píšu to jen tak po paměti - může tam být chyba.
Fred
Profil
Dík moc, sice to nejede, ale aspoň vím co hledat.
Michalek
Profil

for($i=1;i<=120;$i++) {
if($thisImage=="img".$i) {
$nazev=$nazev.$i;
$meta=$meta2$i;
$image=$image.$i;
$width=$width.$i;
$height=$height.$i;
$page=$page.$i;
}
}

taky za nic neručím...
Fred
Profil
To je asi blíž
for($i=1;$i<=12;$i++) {
if($thisImage==img.$i) {
$nazev=$nazev.$i;
$meta=$meta.$i;
$image=$image.$i;
$width=$width.$i;
$height=$height.$i;
$page=$page.$i;
}
}
jenže vypisuje číslo
v hlavičce stránky galerie mám <?php $thisImage="img1"; ?>
, bohužel nevypíše $nazev1 atd. , ale 1, asi nechápu ještě něco jinýho
DoubleThink
Profil *
ne - tam musí být ten eval()

je rozdíl mezi

$nazev = $nazev."1"

a

$nazev = eval("$nazev"."1") == $nazev = $nazev1 // nejsem si teď jistý tou syntaxí

eval ohodnucuje řetězec jako příkaz nebo proměnnou
Michalek
Profil
jsem z toho nějak mimo :-) o eval jsem ještě neslyšel a všechno mi funguje...
Michalek
Profil
eval() vyhodnotí řetězec předaný v code_str jako PHP kód. Kromě jiného se dá využít na ukládání kódu v textovém sloupci databáze pro pozdější vykonání.

Hmm, stejně nechápu, co chápu blbě. Potřeboval bych více kódu abych to pochopil, asi
Fred
Profil
Tak stále tápám, potřeboval bych aby si to bralo data ze seznamu např

$nazev1 = "kopretina";
$meta1 = "kopretina";
$page1 = "kopretina.php";
$image1 = "kopretina.jpg";
$thumb_width1 = "144";
$thumb_height1= "108";
$width1 = "563";
$height1 = "422";

$nazev2 = "tráva";
$meta2 = "tráva";
$page2 = "detail.php";
$image2 = "detail.jpg";
$thumb_width2 = "140";
$thumb_height2= "140";
$width2 = "560";
$height2 = "420";

atd..... aby ten kdo tam bude ty obrázky uploadovat upravoval jen jeden soubor (seznam), pokouším se to dělat přes nějaké rozhraní, jen mi nejde do hlavy proč nemohu zprovoznit to i++
Michalek
Profil

for($i=1;i<=120;$i++) {
if($thisImage=="img".$i) {
$nazev=$nazev.$i;
$meta=$meta2$i;
$image=$image.$i;
$width=$width.$i;
$height=$height.$i;
$page=$page.$i;
tady provest neco s tema nactenyma hodnotama

}
}


Ja v tom nevidim problem, ale asi neco prehlizim...
Fred
Profil
Tohle konečně vyhodí co chci, akorát zůstává chyba v lomítku ascii 92

for($i=1;$i<=120;$i++) {
if($thisImage=="img".$i) {
eval("\$nazev = \"".'$nazev'.$i."\";");
eval("\meta = \"".'$meta'.$i."\";");
eval("\$image = \"".'$image'.$i."\";");
eval("\$width = \"".'$width'.$i."\";");
eval("\$height = \"".'$height'.$i."\";");
eval("\$page = \"".'$page'.$i."\";");
}
}
Fred
Profil
už jsem toho měl plný brejle, že jsem přehlídnul jeden dolar, díky všem už to jede

<?
for($i=1;$i<=12;$i++) {
if($thisImage=="img".$i) {
eval("\$nazev = \"".'$nazev'.$i."\";");
eval("\$meta = \"".'$meta'.$i."\";");
eval("\$image = \"".'$image'.$i."\";");
eval("\$width = \"".'$width'.$i."\";");
eval("\$height = \"".'$height'.$i."\";");
eval("\$page = \"".'$page'.$i."\";");
}
}
?>
Yuhů
Profil
v tom cyklu přes $i stačí zapsat

$meta=${"meta".$i};
Fred
Profil
Děkuju, takhle je to jasnější a i to snad chápu. Tak jak jsem to zbastlil já to sice fungovalo, jenom jsem jaksi netušil proč to tak je, dík. Tohle je mnohem lepší
Toto téma je uzamčeno. Odpověď nelze zaslat.