Gå til innhold

design av artikkelsystem


Anbefalte innlegg

Skrevet

Heisann.

 

Holder på å lage meg et artikkelsystem og har kjørt meg litt fast på layouten + php\mysql.

 

Har en html-tabell, med to kolonner. Men her vil jeg at siste artikkelen skal ligge på toppen og gå over begge de to kolonnene under. Hvordan gjør jeg den enklest med mysql\php?

 

slike ser phpen ut nå:

<?php
$sporring = "SELECT * FROM anmeldelse WHERE type = 'CD' OR type = 'konsert' ORDER BY id DESC";
$sporring = mysql_query($sporring) or die(mysql_error());

while($rad = mysql_fetch_array($sporring)){

echo "<table border=\"0\" class=\"tabell\" valign=\"top\">";
echo "<td class=\"nyanmeld\"><font class=\"nyanmeld\">Nyeste musikkanmeldelse:</font><br>";
echo "<i>" . $rad['artist'] . " - ". $rad['tittel'] . "</i><br>";
echo "" . $rad['ingress'] . "<br>";
echo "<hr>";
echo "Terningkast: " . $rad['terningkast'] . "<br>";
echo "<a href=\"musikk.php?album=" . $rad['id'] . "\" class=\"inni\">Les mer</a>";
echo "</td>";
}


$sporring = "SELECT * FROM anmeldelse WHERE type = 'kino' OR type = 'dvd' ORDER BY id DESC";
$sporring = mysql_query($sporring) or die(mysql_error());

while($rad = mysql_fetch_array($sporring)){

echo "<table border=\"0\" class=\"tabell\" valign=\"top\">";
echo "<td class=\"nyanmeld\"><font class=\"nyanmeld\">Nyeste musikkanmeldelse:</font><br>";
echo "<i>". $rad['tittel'] . "</i><br>";
echo "" . $rad['ingress'] . "<br>";
echo "<hr>";
echo "Terningkast: " . $rad['terningkast'] . "<br>";
echo "<a href=\"film.php?album=" . $rad['id'] . "\" class=\"inni\">Les mer</a>";
echo "</td>";
}
?>

Videoannonse
Annonse
Skrevet

For det første så skjønte jeg ikke hva du mente med "artikkelen skal ligge på toppen og gå over begge de to kolonnene under." Du må nok forklare det litt bedre, hvertfall for meg.

 

Og for det andre, er det en grunn til at du bruker akkurat <hr> for å dele opp, og ikke <tr>?

Skrevet (endret)

Med enkleste form for html gjør du det slik:

 

<table>
<tr> <td colspan="2"> 1. artikkel </td> </tr>
<tr> <td> 2. artikkel </td> <td> 3. artikkel </td> </tr>
<tr> <td> 4. artikkel </td> <td> 5. artikkel </td> </tr>
<tr> <td> 6. artikkel </td> <td> 7. artikkel </td> </tr>
</table>

 

I koden kan du bruke en teller for å vite når du skal bruke colspan=2 (bare første artikkel) og når du skal ha en ny rad (tr) i tabellen (annenhver artikkel etter den første)

 

Det ser ut til at du bruker to tabeller i skriptet du postet, kan være kjekt å se på hvordan html-koden ser ut når du kjører skriptet. Det kan også være lurt å lage tabellen først bare i html slik at du er sikker på at du nailer layouten der før du krøller det til med kode :)

Endret av footnote
Skrevet

ved post i php forumet så er det phpdelen jeg lurer på ;)

men skal se hva jeg får til, og kommer tilbake hvis jeg står fast.

Skrevet

Kunne godt tenkt meg å lære hvordan man setter opp slikt som trådstart vil jeg også :)

Så please post kode hvis du finner løsning.

Skrevet

coldice: fikk det til nå. er nok veldig tungvindt. muligens noen her inne klarer å forenkle det endel :)

 

<table border="0">
<?php 
$sporring = "SELECT * FROM artikler ORDER BY id DESC LIMIT 1";
$resultat = mysql_query($sporring);

while($rad = mysql_fetch_array($resultat))
{
echo "<tr ><td><center><img src=\"bilder/".$rad['type']."/".$rad['filnavn']."\" height=\"100\"></center></td><td colspan=\"3\"><center>\n";
if ($rad['type'] === "musikk"){
 echo "<font class=\"nymusikk\">".$rad['overskrift']."</font><br>\n";
}
elseif ($rad['type'] === "film"){
 echo "<font class=\"nyfilm\">".$rad['overskrift']."</font><br>\n";
}
elseif ($rad['type'] === "artikel"){
 echo "<font class=\"nyartikel\">".$rad['overskrift']."</font><br>\n";
}
echo "<br><i>".$rad['ingress']."<i><br>\n";
if ($rad['type'] === "musikk"){
 echo "<a href=\"musikk.php?id=".$rad['id']."\">Les mer</a><br>\n";
}
elseif ($rad['type'] === "film"){
 echo "<a href=\"film.php?id=".$rad['id']."\">Les mer</a><br>\n";
}
elseif ($rad['type'] === "artikel"){
 echo "<a href=\"artikkel.php?id=".$rad['id']."\">Les mer</a><br>\n";
}
echo "</center></td></tr>\n";
}

echo "<tr><td colspan=\"4\"><hr></td></tr>\n\n\n";

$sporring = "SELECT * FROM artikler ORDER BY id DESC LIMIT 1,7";
$resultat = mysql_query($sporring);

$my_val=1; 

while($rad = mysql_fetch_array($resultat)){

if($my_val == $my_val%2 ){
echo "<tr>\n";
}
echo "<td><img src=\"bilder/".$rad['type']."/".$rad['filnavn']."\" height=\"100\"></td><td>\n";
if ($rad['type'] === "musikk"){
 echo "<font class=\"nymusikk\">".$rad['overskrift']."</font><br>\n";
}
elseif ($rad['type'] === "film"){
 echo "<font class=\"nyfilm\">".$rad['overskrift']."</font><br>\n";
}
elseif ($rad['type'] === "artikel"){
 echo "<font class=\"nyartikel\">".$rad['overskrift']."</font><br>\n";
}
echo "<br><i>".$rad['ingress']."<i><br>\n";
if ($rad['type'] === "musikk"){
 echo "<a href=\"musikk.php?id=".$rad['id']."\">Les mer</a><br>\n";
}
elseif ($rad['type'] === "film"){
 echo "<a href=\"film.php?id=".$rad['id']."\">Les mer</a><br>\n";
}
elseif ($rad['type'] === "artikel"){
 echo "<a href=\"artikkel.php?id=".$rad['id']."\">Les mer</a><br>\n";
}
echo "</td>\n\n";

if($my_val !== $my_val%2 ){
echo "</tr>\n";
}
++$my_val;
}

?>

</table>

Skrevet (endret)

Bestem deg om det skal være artikkel eller artikel så kan du gjøre mye mer dynamisk. Her er et eksempel:

  echo "<font class=\"ny{$rad['type']}\">".$rad['overskrift']."</font><br>\n";
echo "<br><i>".$rad['ingress']."<i><br>\n";
 echo "<a href=\"{$rad['type']}.php?id=".$rad['id']."\">Les mer</a><br>\n";

 

Jeg vet ikke hvordan resten av systemet ditt er bygd opp og om du validerer infoen som blir lagt inn i databasen, men det bør du passe på. Du bør også sjekke om fila eksisterer når du bruker en dynamisk måte (sjekk [email protected]), på les mer lenken.

 

Hvis det er bare de tre typene som eksisterer kan du slenge øverst på kodeeksempelet/kodeveiledningen:

 

if( in_array( $rad['type'], array('musikk', 'film', 'artikkel')){
//koden over
}

 

Og som vanlig er koden allitd tatt rett ut fra hode på håpløse tidspunkter, så forbehold om feil :)

 

Lykke til!

Endret av Zic0

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...