Partyflock
 
Forumonderwerp · 947431
 
hallo,

ik ben bezig met een site waarop verschillende fotos van personen te zien zijn met daarnaast wat gegevens over deze persoon.

nou moet dit in een bepaalde layout en ook nog dynamisch zijn. dus als ik nog drie personen aan de database toevoeg dan moeten deze ook tevoorschijn komen maar wel in dezelfde layout van de pagina.

dit is de layout.



nou weet ik wel hoe ik de gegevens uit de database moet vissen , maar ik zit ff klem met hoe ik die dynamisch op de pagina kan weergeven
ctrl+alt vasthouden, dan terugshiften naar F10
 
je wilt dus met een while lus gaan werken?
 
ja iets dergelijks.. het probleem is alleen de positionering van de fotos en de text op de site..

als je op de foto kijkt dan zie je dat er op dit moment mensen in de database staan, de achtste moet rechtonderin geplaatst worden.

de negende moet dan weer links onder de andere twee fotos die daar als staan komen enz enz..
Zoiets zou het worden, afhankelijk van je tabelopzet en hoe je koppeling naar een andere pagina wordt (de "More"-link). Met wat CSS krijg je een mooie lijst per persoon.

http://codedump.mastercode.nl/170/

CSS voor de definitielijst zal zoiets worden:
dl.person dt { float:left; width:50px; color:blue;}
dl.person dd { color: white; }


Probleem is dus alleen die grijze ruimte die tussen de personen door zit. Dit maakt het natuurlijk lastiger. Om dit te verwezenlijken zul je twee loop-constructies moeten hebben.
laatste aanpassing
 
Uitspraak van Track 007 op donderdag 10 mei 2007 om 18:38:
Zoiets zou het worden, afhankelijk van je tabelopzet en hoe je koppeling naar een andere pagina wordt (de "More"-link). Met wat CSS krijg je een mooie lijst per persoon.

thx voor je bijdrage :respect: . ik zal er eens naar kijken.

die grijze vlakken zijn dus inderdaad net ff lastig.. dat zijn namelijk ook twee tabellen.
Uitspraak van verwijderd op donderdag 10 mei 2007 om 19:07:
die grijze vlakken zijn dus inderdaad net ff lastig.. dat zijn namelijk ook twee tabellen.

Hm, in dat geval zul je eerst moeten tellen hoeveel personen er in de database zit mbv de SQL-functie COUNT. Dit aantal deel je door twee en met behulp van de SQL LIMIT-clausule kun je dan twee maal een query draaien, één keer voor de eerste helft (voor aan de linkerkant van die twee grijze vlakken/tabellen en één keer voor de tweede helft (rechterkant).

Het getal 4 op regel 10, 31 en 32 van het voorbeeldscript dient dan tw worden gewijzigd in 2 omdat het dan natuurlijk na 2 personen op een nieuwe rij moet beginnen.

Om te zorgen dat het dan lijkt alsof de items van linker naar rechts, boven naar beneden bij worden gevuld, is even rekenen en testen met voornamelijk de LIMIT-clausule.

Het volgende heb ik getest en werkte: http://codedump.mastercode.nl/171/

Vergeet uiteraard ook hier niet om de kolom- en tabelnamen te veranderen. Er is ook voor deze opzet wel een stukje css nodig om te zorgen dat de tabellen niet onder elkaar, maar naast elkaar komen te staan:
table{ float: left; )
 
ja ik heb je code al wat aangepast. ik heb de twee grijze tabellen naar links en naar rechts verplaatst en in het midden heb ik nu drie personen naast elkaar staan.

met css ben ik nog niet zo bekend , maar gelukkig kun je in dreamweaver cellen maken en daarin PHP code blocks plakken.

niet de netste oplossing maar het werkt wel :D


ik moet zeggen dat ik erg onder de indruk ben van je code. ziet er zeer netjes uit. daar kan ik bij lange na niet aan tippen.

maar goed ik ben dan ook van oorsprong uit een Cisco man en ben pas sinds een half jaar aktief met php.
 
godver.. nou werkt het <font color="XXXXXX"> weer niet in de mozilla browser..
Uitspraak van verwijderd op donderdag 10 mei 2007 om 21:00:
godver.. nou werkt het <font color="XXXXXX"> weer niet in de mozilla browser..

Ik denk dat je # er nog voor moet zetten.

maar probeer zoveel mogelijk layout dingen in een stylesheet te zetten :)

.mijnfont {
color: #xxxxxx;
}

op een cel zet je dan <td class="mijnfont">inhoud</td> (beter is nog om met div-jes te werken).
Als je nu een ander kleur letter wil hoef je alleen die css aan te passen.
laatste aanpassing
je kan toch gewoon heel simpel een variabeltje maken die het telt en na een aantal een nieuwe regel (table, br, div, maakt niet uit) maken ?

zegmaar (in simpele taal en met vage tekens want pf support geen spaces ;/):

**
**linker grijze kolom
**

//begin midden kolom

teller = 0;

while( resultset van gegevens van database)
{
...teller++;

...if( teller == 2)
......create nieuwe regel

...laat gegevens zien van huidige positie in resultset
}

//einde midden kolom

**
** rechter grijze kolom
**

of zie ik je probleem niet goed?

Uitspraak van verwijderd op donderdag 10 mei 2007 om 20:59:
een half jaar aktief met php.

opzich heeft dit niets met php te maken maar gewoon met programmeren
wat heeft css hiermee te maken trouwens?
laatste aanpassing
Uitspraak van radic op donderdag 10 mei 2007 om 21:43:
zegmaar (in simpele taal en met vage tekens want pf support geen spaces ;/):
Dat is inderdaad ook wat ik had voorgelegd


Uitspraak van radic op donderdag 10 mei 2007 om 21:43:
wat heeft css hiermee te maken trouwens?
Met opmaak. Dat is enkel een middel om hem op weg te helpen aangezien ik in mijn voorbeeld gebruik maak van een definitielijst die een bepaalde standaardopmaak mee krijgt door de browser die niet gelijk is met wat op de screenshot staat van piXXure. Met dat stukje CSS bereik je hetzelfde effect. Hetzelfde geldt voor de tabellen. Standaard waarde van de css property display is block, waardoor tabellen onder elkaar geplaatst zullen worden door de browser. Met wat CSS is dit te voorkomen en kan bereikt worden dat de tabellen zich naast elkaar plaatsen.
shaggability rating... jwt... :P
hm haddie 2e niet gezien

is dit niet "mooier" met <div> en lists btw ipv. tabellen?
(dus een div als totaal container, div voor linkerdeel, div middendeel, div rechterdeel en daarin weer div's als containers en lists voor de gegevens)

nu maakt het voor dit voorbeeld nou niet zoveel uit (ik gebruik zelf ook vaak tabellen maar laatste tijd wat meer over op de tags die er echt voor gemaakt zijn, alleen tabellen voor échte tabellen) maar voor grotere pagina's kan dat een hele hoop tabs, werk en lengte schelen, plus het is overzichtelijker
laatste aanpassing
div is sowieso beter..
maarrr wat wil je nou precies bereiken?

nr 1 --- nr 2 --- midden --- nr3 --- nr4

nr 5 --- nr 6 --- midden --- nr7 --- nr8

of

nr 1 --- nr 2 --- midden --- nr5 --- nr6

nr 3 --- nr 4 --- midden --- nr7 --- nr8

??

is op zich makkelijk te maken dmv soort placeholders
hou je php, html en css altijd gescheiden, kan je er veel meer mee

dus eerst alles uit de database halen
als je als het tweede voorbeeld wil gaan doen pak je de eerste helft van je resultaten genereer de html en sla op $blok_links, idem voor het rechter stuk en op het eind kan je de content op de goede plek in je lay-out gooien...
Uitspraak van radic op donderdag 10 mei 2007 om 22:05:
is dit niet "mooier" met <div> en lists btw ipv. tabellen?

Uitspraak van radic op donderdag 10 mei 2007 om 22:05:
de tags die er echt voor gemaakt zijn
Dat is ook wat ik heb gedaan. Tabellen zijn voor data, en het gaat hier ook om data. De gegevens zijn eigenschappen, termen (zoals name, country) met bijbehorende uitleg, om die reden heb ik daar dan ook voor een definitielijst gekozen met de bijbehorende dt-tag en dd-tag als childelementen. Er zit dus wel degelijk semantiek achter.

Bovendien zou je onnodig veel CSS nodig hebben als je zoiets met divs of lists uit gaat werken. Wat voor element zou je bijvoorbeeld moeten gebruiken om een zogenaamde volgende cel aan te duiden? En hoe moet je op een nieuwe regel beginnen? De betreffende div zou je dan classes mee moeten geven en weer op moeten maken mbv CSS. Tabellen zijn hier dus geknipt voor in mijn ogen.
 
Uitspraak van dex op donderdag 10 mei 2007 om 22:14:
div is sowieso beter..
maarrr wat wil je nou precies bereiken?

nr 1 --- nr 2 --- midden --- nr3 --- nr4

nr 5 --- nr 6 --- midden --- nr7 --- nr8

of

nr 1 --- nr 2 --- midden --- nr5 --- nr6

nr 3 --- nr 4 --- midden --- nr7 --- nr8

??

is op zich makkelijk te maken dmv soort placeholders
hou je php, html en css altijd gescheiden, kan je er veel meer mee

dus eerst alles uit de database halen
als je als het tweede voorbeeld wil gaan doen pak je de eerste helft van je resultaten genereer de html en sla op $blok_links, idem voor het rechter stuk en op het eind kan je de content op de goede plek in je lay-out gooien...

maakt op zich niet zo heel veel uit in welke volgorde het gaat. het gaat erom dat wanneer de admin een nieuwe persoon toevoegt dat die dan ook tevoorschijn komt.

het hele css, en placeholders en dat soort termen zijn nog vrij nieuw voor me. ik ben geen programmeur van opleiding uit maar een netwerk-boer. omdat ik ooit eens een baantje als databasebeheerder heb gehad weet ik het een en ander van SQL. thats it.. maar ooit leer ik het wel
 
Uitspraak van dex op donderdag 10 mei 2007 om 22:05:
shaggability rating... jwt...

hahah de pagina is voor een bedrijf in spanje die kroegentochten organiseert.. de mensen die op de pagina te zien zijn , zijn de beruchte personeelsleden in de zogenaamde hall of fame :D
Uitspraak van verwijderd op donderdag 10 mei 2007 om 23:30:
weet ik het een en ander van SQL

ok..
gaan we ff kweriën enzo :P

je doet select query
$query = "select meuk from andere_meuk where lala = 'shaggable'";
$rs = mysql_query($query);

donder alles in array
while($result = mysql_fetch_assoc($rs))
{
$resultset[] = $result;
}

nu weet je dus hoeveel je dr hebt door
$aantal_meuk = count($resultset);

in jouw geval moet je 'm delen door 2, want je wilt aan 2 kanten dingen laten zien..

ga in een for loop ene helft van array langs en in plaats van te echo-en gooi je alles in een variabele..
hiervoor kan je dus gewoon dat stuk code van Track 007 gebruiken

$meuk_voor_links = ""

for ($i = .....)
{
$meuk_voor_links .= "html meuk";
}

idem voor rechts

ga je drna je html echo-en

echo "
<html>
<head>
....
<div id='meuk_links'>
" . $meuk_voor_links . "
</div>
...
div midden etc
...
div rechts meuk
...
</html>";

zoiets..