webForumDet fria alternativet

Slumpa fram länk

PHPur PHP

14 svar · 602 visningar · startad av silfver

Medlem sedan apr. 200312 679 inlägg
Frågan#1

Då ska vi se ifall jag lyckas förklara vad jag vill åstadkomma här. :)

Jo, jag har 10 bilder. Varje bild ska ha en länk kopplad till sig. Jag vill slumpa fram de här bilderna.

Alltså, ungefär så här:

<a href="bildlänk"><img src="bild" alt="" /></a>

Vad är enklast? Jag kom på, samtidigt som jag skrev här, att tio rader med ovanstående kod i ett textdokument kanske är smidigaste lösningen? Men hur skulle det lösas i så fall?

Tacksam för svar. :)

Medlem sedan juni 20006 032 inlägg
#2

enklaste skulle ju vara att döpa bilderna med namn som 1.jpg osv och sen slumpa fram ett nummer mellan 1-10.

/red. Glömde ta med länkarna i beräkningen. Dom kan ju ställa till bekymmer om dom inte har något med bildnamnet att göra ju. Så det kanske är bättre att lösa på något annat sätt.

Medlem sedan apr. 200312 679 inlägg
#3

Jo, det är ju det. Men enklast kanske är att göra ett txt-dokument med rader som ser ut som följande:

<a href="#1"><img src="bild1" alt="Slumpad bild"/></a>
<a href="#2"><img src="bild2" alt="Slumpad bild"/></a>
<a href="#3"><img src="bild3" alt="Slumpad bild"/></a>
<a href="#4"><img src="bild4" alt="Slumpad bild"/></a>
<a href="#5"><img src="bild5" alt="Slumpad bild"/></a>
<a href="#6"><img src="bild6" alt="Slumpad bild"/></a>

Och sen göra något script som slumpar en rad ur textdokumentet.

Hur skulle ett sånt kunna se ut? Eller så kanske det finns en smart lösning som inte kräver ett textdokument? :)

Medlem sedan apr. 200312 679 inlägg
#4

Detta kanske kan fungera?

$links = "<a href="#1"><img src="bild1" alt="Slumpad bild"/></a>
<a href="#2"><img src="bild2" alt="Slumpad bild"/></a>
<a href="#3"><img src="bild3" alt="Slumpad bild"/></a>
<a href="#4"><img src="bild4" alt="Slumpad bild"/></a>
<a href="#5"><img src="bild5" alt="Slumpad bild"/></a>
<a href="#6"><img src="bild6" alt="Slumpad bild"/></a>";

$links = explode("\n", $links);
$chosen = wptexturize( $links[ mt_rand(0, count($links) ) ] );
function hello_dolly() {
	global $chosen;
	echo "<p id='dolly'>$chosen</p>";
}

Är den här koden ok?

Medlem sedan aug. 20039 342 inlägg
#5

Du får ursäkta mig, men nej, den är inte ok.

Medlem sedan apr. 200312 679 inlägg
#6

nitro2k01 skrev:

Du får ursäkta mig, men nej, den är inte ok.

Jag märkte det. :e Men ifall du ursäktar mig, kan inte du ge exempel på en kod som fungerar? :)

Medlem sedan aug. 20039 342 inlägg
#7

Finns bättre sätt, men här en variant baserad på din kod:

<?PHP

function hello_dolly() {
	$links = '<a href="#1"><img src="bild1" alt="1Slumpad bild"/></a>
	<a href="#2"><img src="bild2" alt="2Slumpad bild"/></a>
	<a href="#3"><img src="bild3" alt="3Slumpad bild"/></a>
	<a href="#4"><img src="bild4" alt="4Slumpad bild"/></a>
	<a href="#5"><img src="bild5" alt="5Slumpad bild"/></a>
	<a href="#6"><img src="bild6" alt="6Slumpad bild"/></a>';

	$links = explode("\n", $links);
	srand ((double) microtime() * 1000000);
	$chosen = $links[ rand(0, count($links)-1 ) ];

	echo "<p id='dolly'>$chosen</p>";
}
hello_dolly();
?>
Medlem sedan apr. 200312 679 inlägg
#8

Hm. Ifall jag klistrar in din kod rakt av så fungerar inte min sida mer. Men ifall jag klistrar in koden i ett eget php-dokument och kör koden fungerar den. Vet du varför?

Medlem sedan aug. 20039 342 inlägg
#9

Kan det vara så simpelt som att du har klistrat in koden i ett kodblock och glömt kvar <?PHP och ?>

Medlem sedan apr. 200312 679 inlägg
#10

nitro2k01 skrev:

Kan det vara så simpelt som att du har klistrat in koden i ett kodblock och glömt kvar <?PHP och ?>

Nej. :l Men kan det ha något att göra med att det är en template-fil?

Har även försökt att lägga in koden i en egen fil och hämta in den i den andra (med require="fil.php";) utan resultat.

Medlem sedan mars 2005232 inlägg
#11

Här har du en tråd som jag startade när jag ville åstadkomma samma sak:
http://www.webforum.nu/showthread.php?t=146420

Medlem sedan mars 20034 471 inlägg
#12

Du kan ju lagra dina bilder med länkar antingen i en databas eller i en array. Sedan slumpar du fram index, och då får du fram både bildnamn och länk.

Medlem sedan apr. 200312 679 inlägg
#13

Jag tänkte försöka ge mig in på Mr. N:s förslag om

SELECT citat FROM citat ORDER BY RAND() LIMIT 4

Borde väl inte vara så svårt... Men hur ska tabellinformationen se ut?

Fält:
Typ:
Längd/värden*
Attribut
Null
Standard**
Extra
Primär/Index/unik/--- (markerad)
Heltext

Medlem sedan okt. 20001 285 inlägg
#14

Jag lekte fram detta nyss

<?php
$numpics = '5';
$numbers = range(1,10);
shuffle($numbers);
$ztart = '1';
while($ztart < $numpics) {
	echo "<a href=\"#".$numbers[$ztart]."\"><img src=\"bild".$numbers[$ztart]."\" width=\"50\" height=\"50\" alt=\"".$numbers[$ztart]." Slumpad bild\" /></a>\n";
	$ztart++;
}
?>
Medlem sedan apr. 200312 679 inlägg
#15

Ditt script slumpar fram fyra bilder. :)

r/ Ah. Jag ändrade "numpics" till två. :)

139 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)