Avatar billede bigtime Nybegynder
01. juni 2008 - 22:28 Der er 20 kommentarer og
2 løsninger

Forkorte den her script kode

Hey
kan man ikke forkorte den her kode så den ikke er så lang ?
jeg kan forstille mig der er noget kode der ikke skal bruges
<?php


include("database.php");



$sum = 2; // Antal billeder ved siden af hinanden


$query = mysql_query("SELECT * FROM reklame ORDER BY RAND() LIMIT 3 ") or die(mysql_error());

print "<table class='top22'><tr>";

while($row = mysql_fetch_array($query)) {

    echo "<td width=250 height='60'><a href=\"$row[http]\" target=_blank> $row[alt]<img src=\"small/$row[navn]\" height=60 width=250 border=1 onMouseUp=\"className='visited'\" alt=\"$row[alt]\"></a></td>";

    if ($sumcount == $sum) {

        $sumcount = 0;

        echo "</tr><tr>";

    }

    $sumcount++;
}



echo "</td></tr></table>";

?>
Avatar billede jakobdo Ekspert
01. juni 2008 - 22:32 #1
Al kode bliver brugt.
Du kan evt. ændre en linje eller 2, men ikke fjerne noget, med mindre andet tilføjes.
Avatar billede w13 Novice
01. juni 2008 - 22:35 #2
$sum = 2; // Antal billeder ved siden af hinanden

kan jo spares væk, hvis du sætter:

    if ($sumcount == $sum) {
til:
    if ($sumcount == 2) {

Men det vil selvfølgelig gøre koden sværere at rette i.
Ellers bliver den vist ikke meget kortere nej. Hvorfor vil du have den kortere?
Avatar billede bigtime Nybegynder
01. juni 2008 - 22:36 #3
tænkte det nok
men hvad med den her kan den ikke fjernes for i mine øjne bliver den ikke brugt til noget  $sum = 2;

jeg har jo den her i stedet for
$query = mysql_query("SELECT * FROM reklame ORDER BY RAND() LIMIT 3 ") or die(mysql_error());
Avatar billede bigtime Nybegynder
01. juni 2008 - 22:37 #4
jo ville bare have den lidt mere overskulig og for det meste når ting bliver mindre bliver det også mere over skuligt :D
Avatar billede w13 Novice
01. juni 2008 - 22:38 #5
$sum = 2;
bliver jo brugt her:
    if ($sumcount == $sum) {

Men som før nævnt, kan du jo bare skrive 2-tallet direkte ind der.
Avatar billede olebole Juniormester
01. juni 2008 - 22:39 #6
<ole>

bigtime >> Nej, meget ofte er en kompakt kode langt vanskeligere at læse  =)

/mvh
</bole>
Avatar billede w13 Novice
01. juni 2008 - 22:40 #7
Skal:
  className='visited'
i øvrigt ikke være:
  this.className='visited'
?
Og evt.:
  this.className=this.class='visited'
hvis det skal virke i flere browsere.
Avatar billede w13 Novice
01. juni 2008 - 22:40 #8
Ja, din kode bliver ikke meget bedre. =) Hvis dette er din mest komplekse kode, så har du en temmelig overskuelig kodestruktur på din side. ;)
Avatar billede olebole Juniormester
01. juni 2008 - 22:42 #9
w13 >> Nej, der er ingen browsere, der kan bruge this.class="bla" til noget. Problemet opstår først, hvis du bruger set-/getAttribute  ;o)
Avatar billede olebole Juniormester
01. juni 2008 - 22:45 #10
- og for at være mere specifik, så forstår alle browsere ELEMENT.className="bla", men IE forstår ikke ELEMENT.setAttribute("class", "bla")  =)
Avatar billede olebole Juniormester
01. juni 2008 - 22:46 #11
... på trods af, at den sidste er valid
Avatar billede w13 Novice
01. juni 2008 - 22:49 #12
olebole>> Sorry, ja. Den smuttede lige. :)
Avatar billede bigtime Nybegynder
01. juni 2008 - 22:55 #13
jeg siger bare mange tak for det :D
det er altid godt der er nogen at spørge når man er i trivel :D
Avatar billede olebole Juniormester
02. juni 2008 - 00:06 #14
Et lille eksempel på en kompakt, men ikke synderlig læselig kode:

<script type="text/JavaScript">
var isGIF = document.getElementById("menu").getElementsByTagName("img")[0].split().pop().toLowerCase().indexOf("gif")!=-1;
alert(isGIF)
</script>

Jeg ville klart foretrække 1000 linjer udfoldet kode, end 300 af den slags kompakte linjer  ;o)
Avatar billede olebole Juniormester
02. juni 2008 - 00:07 #15
Ups ... jeg manglede et tegn at splitte over  =)

var isGIF = document.getElementById("menu").getElementsByTagName("img")[0].split(".").pop().toLowerCase().indexOf("gif")!=-1;
Avatar billede olebole Juniormester
02. juni 2008 - 00:09 #16
- og 'isGIF' er en boolean (true eller false), der tager værdi alt efter, om det første billede i elementet med id="menu" har extension'en 'gif' eller 'GIF'  =)
Avatar billede olebole Juniormester
02. juni 2008 - 00:11 #17
- og så manglede der dæleme også et lighedstegn:

var isGIF == document.getElementById("menu").getElementsByTagName("img")[0].split(".").pop().toLowerCase().indexOf("gif")!=-1;

Der kan du se. Jeg kan zq ikke engang finde ud af at skrive koden!  :D
Avatar billede jakobdo Ekspert
02. juni 2008 - 08:33 #18
olebole: Du drikker for meget kaffe! :o)
Avatar billede olebole Juniormester
02. juni 2008 - 22:17 #19
- tværtimod ... derfor!  ;D
Avatar billede bigtime Nybegynder
01. september 2010 - 19:47 #20
kom med nogen svar for tror det er lukke tid
Avatar billede jakobdo Ekspert
02. september 2010 - 08:18 #21
Svar!
Avatar billede jakobdo Ekspert
03. september 2010 - 10:57 #22
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester