Mysql data & mijn pagina hoogte!

Status
Niet open voor verdere reacties.

Kproz

Gebruiker
Lid geworden
11 jul 2007
Berichten
138
ik ben toe aan een nieuwe weblayout maar ik had wat vraagjes!

ik wil dus een website waarbij de lengte van elke pagina ( verticaal ) afhangt van het aantal objecten in mijn database, stel dat ik 20 nieuws items heb, zouden die er allemaal ingeplakt worden, maar stiekem wil ook een een limiet op die lengte. bijvoorbeeld dat de maximum lengte 1600 px is ( division ) en de minumumlengte 600 px , als die 20 berichten er dan niet ingaan komen diegene die er niet meer bij gaan op een andere pagina genaamt "older news" als je het een beetje begrijpt!

ik weet alleen niet hoe ik hier aan moet beginnen

advies nodig ! :)
 
Kproz,

Je eerste gedeelte van 600px is op te lossen met CSS. (min-height en height).

Het tweede gedeelte is lastig, maar redelijk goed te doen. Ik ga er even vanuit dat je kolom een fixed width heeft. Stel dat er maximaal 30 characters naast elkaar passen:

PHP:
	$lineheight = 14; //px
		
	$text = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
	$a = chunk_split($text, 30, "\n");
	$b = split("\n", $a);
	
	echo count($b) . " regels<br />";
	echo "hoogte: " . ($lineheight*count($b));

Dat lijkt me duidelijk. Wat je nu wilt is dat een nieuws bericht ook niet meer toegevoegd wordt wanneer dat zou betekenen dat er meer dan 1600px hoogte nodig is. Daarvoor ga je de nieuw berichten één voor één toevoegen:

PHP:
   $lineheight  = 14; //px
   $linewidth   = 30; //characters
   $maxheight = 1000; //px (je wilt hier dadelijk 1600px hebben staan. maar voor het voorbeeld)
   $maxlines   = $maxheight/14; //lijntjes

   $berichten = array();
   $berichten[0] = "<b>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</b>";
   $berichten[1] = "<u>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</u>";
   $berichten[2] = "<i>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</i>";

   $data = array();
   for($i=0;$i<count($berichten);$i++){
   	 $tmp = chunk_split($berichten[$i], 20, "\n");
	 $tmp = split("\n", $tmp);
	 if(count($data)+count($tmp)>$maxlines) break;
	 $data = array_merge($data, $tmp);
   }
   
   foreach($data as $line)  echo "$line<br />\n";

Wout
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan