Gå til innhold

$navn1 - 11 skal skrives ut i en loop.


Anbefalte innlegg

Jeg fikser ikke å forklare hva jeg vil uten eksempler, så jeg har skrevet kommentarer underveis i koden.

Klikk for å se/fjerne innholdet nedenfor

PHP

 

// Masse HTML

 

 

<?php

 

// Her gir jeg bildenavnene en variabel

 

$navn1 lyshaugen;

$navn2 mbpro;

$navn3 rusty;

$navn4 sky-ies;

$navn5 pavel;

$navn6 shit;

$navn7 web;

$navn8 voltage;

$navn9 sommerfugl;

$navn10 sommerfugl1;

$navn11 muteple;

 

$totalt 11;

?>

// Masse HTML

 

<?php

 

/* Her sliter jeg. Dette er foreløpig det siste, desperate forsøket jeg hadde i 

forsøk på å få det til. Det jeg vil er at f.eks $navn1 skal skrives ut, så går 

loopen en gang til, da skrives $navn2 ut osv. - hhv. lyshaugen og mbpro. 

Et eksempel på en utskrift jeg vil ha er:

 

<div class="element">

<a href="foto/lyshaugen.jpg" rel="lightbox[asd]"><img src="foto/lyshaugen_t.jpg" /></a>

<div class="tekst">Lyshaugen - Les mer</div>

</div>

 

*/

 

for($i 1$i $totalt $i++){

echo("

<div class='element'>

<a href='foto/"); echo($navn.$i); echo(".jpg' rel='lightbox[foto]'><img src='foto/"); echo($navn.$i); echo("_t.jpg' /></a>

<div class='tekst'>"); echo("$navn.$i"); echo("- les mer</div>

</div>");

 

}

?>

// Mer HTML

 

Er svært takknemlig for hjelp!

Endret av -Teddy-
Lenke til kommentar
Videoannonse
Annonse

Sett heller navnene inn i en tabell (array) og bruk loopen til å hente ut ett og ett element fra den tabellen.

 

 

 

PHP
<?php

 

$images = array("lyshaugen","mbpro","rusty""[OG SÅ VIDERE]");

$totalt 11;

 

for($i 0$i $totalt$i++)

{

echo("<div class='element'><a href='foto/");

echo($images[$i]); // SE HER REFERERER JEG TIL ETT ELEMENT I TABELLEN FOR HVER GJENNOMGANG AV LOOPEN

echo(".jpg' rel='lightbox[foto]'><img src='foto/");

echo($images[$i]);

echo("_t.jpg' /></a><div class='tekst'>");

echo($images[$i]);

echo("- les mer</div></div>");

}

 

?>

 

Du kan ikke referere til variabler ved å slå sammen to strenger. Dvs hvis $a = "arne" og $b = "bjarne" kan du ikke hente $arnebjarne ved å slå sammen $a og $b.

Endret av HolgerLudvigsen
Lenke til kommentar
Du kan ikke referere til variabler ved å slå sammen to strenger. Dvs hvis $a = "arne" og $b = "bjarne" kan du ikke hente $arnebjarne ved å slå sammen $a og $b.

7179125[/snapback]

Jeg synes det er litt merkelig siden man nesten kan det:
$a = 'hei';
$$a = 'du';
echo $hei   // Vil skrive ut: 'du'

Lenke til kommentar
Hvorfor begynner du på 1? ($i =1) og hvorfor ikke $totalt = count($images) ?

7179234[/snapback]

For å slippe å tenke på grenseverdier og andre ting som gir en programmerer vondt i hodet kan det gjøres slik:

 

PHP

<?php

 

$names = array('lyshaugen',

               'mbpro',

               'rusty',

               '...');

 

foreach($names as $name) {

?>

  <div class="element">

    <a href="foto/<?=$name?>.jpg" rel="lightbox[asd]"><img src="foto<?=$name?>_t.jpg" /></a>

    <div class="tekst"><?=ucfirst($name)?> - Les mer</div>

  </div>

 

<?php

}

?>

 

Produserer

Klikk for å se/fjerne innholdet nedenfor
<div class="element">

<a href="foto/lyshaugen.jpg" rel="lightbox[asd]"><img src="fotolyshaugen_t.jpg" /></a>

<div class="tekst">Lyshaugen - Les mer</div>

</div>

 

 

<div class="element">

<a href="foto/mbpro.jpg" rel="lightbox[asd]"><img src="fotombpro_t.jpg" /></a>

<div class="tekst">Mbpro - Les mer</div>

</div>

 

 

<div class="element">

<a href="foto/rusty.jpg" rel="lightbox[asd]"><img src="fotorusty_t.jpg" /></a>

<div class="tekst">Rusty - Les mer</div>

</div>

 

 

<div class="element">

<a href="foto/....jpg" rel="lightbox[asd]"><img src="foto..._t.jpg" /></a>

<div class="tekst">... - Les mer</div>

</div>

 

En annen ting jeg gjorde annerledes var å hoppe inn og ut av php-modus, fremfor å bruke echo, dette er mer en personlig preferanse. :)

Lenke til kommentar

Var det jeg kom fram til og. :) Slik går det når man poster før man får tenkt seg skikkelig om.

 

Jeg vet egentlig knapt nok hva MySQL er, men kan det brukes til lagring av slike data jeg nå kommer til å inkludere fra en fil istedet?

 

EDIT: Dro vekk quoten av M4rTiN

Endret av -Teddy-
Lenke til kommentar

Klart du kan. Lag deg en tabell som inneholder brukere.

Så henter du det, og printer det med:

while( $rad = mysql_fetch_array($sql) ) {
 echo '<div class="element">
   <a href="foto/' . $rad["name"] . '.jpg" rel="lightbox[asd]">
   <img src="foto' . $rad["name"] . '_t.jpg" /></a>
   <div class="tekst">' . ucfirst($rad["name"]) . ' - Les mer</div>
 </div>';
}

Endret av M4rTiN
Lenke til kommentar

Takk M4rTiN, skal begynne å lese litt om MySQL etterhvert. Databaser virker mer oversiktlig enn masse småfiler overalt.

 

Jeg skal lage en imageresizer. (har et nesten-ferdig-script)

Noen bilder står på høykant, men jeg vil at alle thumbnails skal være i 250px*166px. Hvordan får jeg kun et utsnitt av bildet som thumbnail?

Lenke til kommentar

Det er mulig å løse dette uten en array, selv om det ikke nødvendigvis er en fin løsning:

 

PHP

<?php

$navn1 'martin';

$navn2 'ole';

$navn3 'ingeborg';

 

for ($i=i;$i<4;$i++)

{

echo $navn$i;

}

?>

 

Som sagt, jeg vet det er stygt, men det er mulig er alt jeg ville si :p

Lenke til kommentar
Det er mulig å løse dette uten en array, selv om det ikke nødvendigvis er en fin løsning:

 

PHP

<?php

$navn1 'martin';

$navn2 'ole';

$navn3 'ingeborg';

 

for ($i=i;$i<4;$i++)

{

echo $navn$i;

}

?>

 

Som sagt, jeg vet det er stygt, men det er mulig er alt jeg ville si :p

7209500[/snapback]

Det er ikke bare stygt, det fungerer ikke engang.

 

Skal du gjøre det, så må det gjøres slik

<?php
$navn[1] = 'martin';
$navn[2] = 'ole';
$navn[3] = 'ingeborg';

for ($i=1;$i<4;$i++)
{
   echo $navn[$i]."<br />\n";

}
?>

$i = i? :p

Lenke til kommentar
Skal du gjøre det, så må det gjøres slik

<?php
$navn[1] = 'martin';
$navn[2] = 'ole';
$navn[3] = 'ingeborg';

for ($i=1;$i<4;$i++)
{
   echo $navn[$i]."<br />\n";

}
?>

$i = i? :p

7211952[/snapback]

 

Neida, man må bare være klar for å misbruke PHP brutalt.

 

peter@smurf:~$ php -a

Interactive mode enabled

 

<?php

$navn1 = 'a';

$navn2 = 'b';

$navn3 = 'c';

 

for($i=0;$i<4;$i++)

{

eval('echo $navn'.$i.';');

}

abc

huff, nå føler jeg meg skitten her :ermm:

Endret av Nazgul
Lenke til kommentar
For å dra det litt videre (hvis ingen har noe imot det) - finnes det en innebygd PHP-funksjon som scanner gjennom en spesifisert mappe og legger inn filnavnene i en array? Så det hele kan gå mer eller mindre automatisk, mener  jeg?

7213352[/snapback]

 

Dette søkte jeg litt etter og tittet på, men jeg kom fram til at jeg ikke hadde bruk for det. Jeg må kunne bestemme hvilken rekkefølge bildene skal stå i på websiden, og om scriptet sjekker automatisk vil det vel gå etter filnavn eller sist endret dato. Filnavn kan ikke endres da jeg bruker filnavnet som linketekst og titletekst flere steder. Å ha 01 02 03 osv foran passer seg ikke.

 

Link til readdir

 

I tilfelle måtte man også fjernet thumbnailsa, jeg vet ikke hvordan man skulle gjort det. Om noen har god tid kan de godt vise hvordan det i tilfelle skulle blitt gjort, jeg liker å studere og lære php. Alle thumbnails slutter på "_t.filendelse". Er kjempefornøyd med at PHP guiden er tatt opp igjen. :wee:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...