Gå til innhold

Effektiv måte og lage rutenett


Anbefalte innlegg

Hei!

 

Etter ett par timer nå på kvelden så gir jeg opp og velger å spørre dere mer erfarne her på forumet.

 

Jeg ønsker å lage ett rutenett med tabeller (<table><tr><td> osv..)

 

Jeg har 2 variabler, $X og $Y som tilsvarer antar ruter i høyden og bredden, rettere sagt, <th> og <td>.

 

Hver rute (<td>) må tildeles en unik ID for disse skal til slutt sjekkes mot en database.

 

Hvordan kan jeg gjøre dette mest effektivt?

 

- Fredrik

Endret av Wackamole
Lenke til kommentar
Videoannonse
Annonse

<?php
$xs = 10;
$ys = 7;

for($y=0; $y < $ys; $y++) {
 echo "<table cellspacing='0' cellpadding='0'>";
 echo "<tr>";
 for($x=0; $x < $xs; $x++) {
echo "<td id='($x,$y)' style='border:1px solid #aaa;width:90px;height:50px'>";
  echo "x=$x, y=$y";
echo "</td>";
 }
 echo "</tr></table>";
}
?>

 

Er ikke verre enn å lage en 2-dimensjonell loop. Alternativet er å bruke modulus, som også er veldig lett.

 

Trenger du en faktisk unik kode, så må en generere en kode, å sjekke om den allerede er i bruk, ved å spørre databasen.

Endret av warpie
Lenke til kommentar

Du må nok gjøre leksene dine selv! ;) Et par timer på kvelden er ingenting.

 

Løsningen er å bruke en nøsted løkke (nested loop), en for x og en for y. Id'en kan genereres ved hjelp av telleren, f.eks. id="id_$i";

 

Du mener nok <tr> og <td>, og ikke <th>.

 

Kom meg faktisk så langt at jeg skjønte at jeg måtte bruke nested loop, å den delen av koden ble faktisk rett. Var bare sammensettningen som tok knekken på meg i går. Fikk det til idag! Takk for oppmuntringen! :)

 

Det verste med det hele er at koden virkelig ikke er komplisert i det hele tatt. Føler meg ordentlig dum :blush:

Lenke til kommentar

Vel, der kom visst en som gjorde deg en bjørnetjeneste ved å gjøre leksene for deg. Dessverre bruker han også deprecated kode i løsningen sin.

 

Trenger ikke føle deg dum, er bare å bruke mye tid på det, så kommer lyset etterhvert.

 

Når jeg har drevet med PHP såpass lenge som jeg har nå så er det flaut når enkle problemer blir vannskelige :) Det var bare å få <tr> på rett plass i løkken så ble resultatet slik jeg ønsket. Har forsåvidt gjort det til en liten regel å ikke "klippe å lime" kode direkte fra forumet. Mye skumle greier :) takk for svar! :)

Lenke til kommentar

Vel, der kom visst en som gjorde deg en bjørnetjeneste ved å gjøre leksene for deg. Dessverre bruker han også deprecated kode i løsningen sin.

 

Trenger ikke føle deg dum, er bare å bruke mye tid på det, så kommer lyset etterhvert.

 

Si meg, hva er deprecated med et par loops? Har vært borte fra PHP en stund, men det er da rett frem slik en gjør det uanset språk.

 

Hvis nested loops er deprecated så vet ikke jeg. Eneste jeg kan tenke meg at må fiskes er: $x- og $y-statementa KAN escapes i html-koden (ikke en gang verdt å nevne).

 

? :p

Endret av warpie
Lenke til kommentar

Si meg, hva er deprecated med et par loops? Har vært borte fra PHP en stund, men det er da rett frem slik en gjør det uanset språk.

 

Hvis nested loops er deprecated så vet ikke jeg. Eneste jeg kan tenke meg at må fiskes er: $x- og $y-statementa KAN escapes i html-koden (ikke en gang verdt å nevne).

 

? :p

1. cellspacing

2. cellpadding

3. inline style.

4. avsluttende PHP-tag

 

De to sistnevnte er teknisk sett ikke deprecated, bare bad practice.

Lenke til kommentar

1. cellspacing

2. cellpadding

3. inline style.

4. avsluttende PHP-tag

 

De to sistnevnte er teknisk sett ikke deprecated, bare bad practice.

 

cellspacing, og cellpadding er vel strengt tatt ikke deprecated? Var iallefall ikke klar over det. De må jo justeres, da de automatisk blir satt til 2, og 2 i de fleste browsere? Css kan vel fiskse det.. Aldri testet.

 

Skal en nå merke seg Innline CSS så har jeg heller ikke definert HTML-standard, html-tag, og body. table, tr og td er vel forsåvidt bad practice, da div lar deg gjøre samme jobben, men benytter seg av CSS for å gjøre det.

 

Sier du at jeg ikke skal avslutte php med tag?? Det har jeg aldri hørt om. Hvorfor?

Endret av warpie
  • Liker 1
Lenke til kommentar

<table> er ikke bad practice, men semantisk korrekt så lenge man skal lage en tabell, eller et rutenett som trådstarter spør om.

 

Hverken cellspacing eller cellpadding er støttet i HTML5. Man skal bruke CSS istedet.

 

If a file is pure PHP code, it is preferable to omit the PHP closing tag at the end of the file. This prevents accidental whitespace or new lines being added after the PHP closing tag, which may cause unwanted effects because PHP will start output buffering when there is no intention from the programmer to send any output at that point in the script.

http://php.net/manual/en/language.basic-syntax.phptags.php

  • Liker 1
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...