PHP - Slumpa fram så att samma nummer inte förekommer mer än 1 gång.

Tråden skapades och har fått 2 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Göteborg
  • 2009-12-07 00:17

Jag har en liten fråga ang. PHP-kodning

Jag använder samma funktion på 4 platser, vilket gör att jag vill ha olika bilder på olika platser. Med andra ord göra så att ingen bild dyker upp mer än 1 gång samtidigt.

Med funktionen jag har nu blir det lätt så att endast 2 bilder visas samtidigt och på 2 platser var.

Kan tänka mig att det finns ett enkelt sätt att lösa detta, bara det att jag är för mycket nybörjare.

Funktionen jag har nu är :

<?php

$mapp = 'wp-content/themes/simplead/images/slumplogo/';
$filtyp = '.png';
$tal = rand(1,5);

$lanka1 = 'http://simplead.se/?page_id=60';
$lanka2 = 'http://www.ewb.ja-ye.org/';
$lanka3 = 'http://www.ungforetagsamhet.se/';
$lanka4 = 'http://simplead.se/?p=45';
$lanka5 = 'http://simplead.se/?page_id=2';

if ($tal == 2)
{

echo '<a href="'.${'lanka'.$tal}.'" target="_blank"><img src="'.$mapp.''.$tal.''.$filtyp.'" alt="" border="0" /></a>';

}

else if($tal == 3)

{

echo '<a href="'.${'lanka'.$tal}.'" target="_blank"><img src="'.$mapp.''.$tal.''.$filtyp.'" alt="" border="0" /></a>';

}

else

{

echo '<a href="'.${'lanka'.$tal}.'"><img src="'.$mapp.''.$tal.''.$filtyp.'" alt="" border="0" /></a>';

}

?>

Är tacksam för all hjälp jag kan få.

/Max

  • Medlem
  • International user
  • 2009-12-07 00:31

Det här borde funka. Har inte testkört det, men du förstår nog principen iaf. Skapa en array med fem element satta till 0. Kör sen ditt random nummer och kolla i arrayen om det är en etta eller nolla. Är det en etta så har det redan visats så hitta på ett nytt nummer.

Däremot får du problem om du kör koden mer än fem gånger eftersom while loopen aldrig kommer sluta!

<?

// Overst pa sidan
$visad = array(0, 0, 0, 0, 0);

?>

<?php

$mapp = 'wp-content/themes/simplead/images/slumplogo/';
$filtyp = '.png';

$tal = rand(1,5);

while ($visad($tal)!=0) {
   $tal = rand(1,5);
}

$visad($tal) = 1;

$lanka1 = 'http://simplead.se/?page_id=60';
$lanka2 = 'http://www.ewb.ja-ye.org/';
$lanka3 = 'http://www.ungforetagsamhet.se/';
$lanka4 = 'http://simplead.se/?p=45';
$lanka5 = 'http://simplead.se/?page_id=2';

if ($tal == 2)
{
echo '<a href="'.${'lanka'.$tal}.'" target="_blank"><img src="'.$mapp.''.$tal.''.$filtyp.'" alt="" border="0" /></a>';

}

else if($tal == 3)

{
echo '<a href="'.${'lanka'.$tal}.'" target="_blank"><img src="'.$mapp.''.$tal.''.$filtyp.'" alt="" border="0" /></a>';

}

else 

{

echo '<a href="'.${'lanka'.$tal}.'"><img src="'.$mapp.''.$tal.''.$filtyp.'" alt="" border="0" /></a>';

}

?>
  • Medlem
  • Göteborg
  • 2009-12-07 18:42

Okej, jag förstår inte mycket av det där tyvärr.

Har du lust att förklara får du gärna göra det.

Tyvärr funkade det inte när jag klistrade in koden, eftersom jag är extrem nybörjare på php och bara har hållt på med HTML och CSS innan så har jag ingen aning om vad som är fel.

Är tacksam för all hjälp.

1
Bevaka tråden