login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Foto's ordenen (Opgelost)

Offline Urbanusfan - 12/06/2008 22:20
Avatar van UrbanusfanLid
Ik heb foto's in een databank gestoken door middel van een link, zo is het eenvoudig werken als er een betere scan toekomt, gewoon foto op server aanpassen zonder dat je in de databank moet zitten.
Enfin, ik krijg de foto's enkel onder elkaar weergegeven en zou die het liefst met 5 naast elkaar zien staan en dan een nieuwe rij, maar krijg dit niet klaar.


http://www.plaatscode.be/10525/

Is er iemand die hier raad mee weet?
Ik kan eigenlijk maar heel weinig vinden over php en design, spijtig genoeg.

Heb ooit een poging gedaan met
if($count == 5)
Maar dat kwam niet goed, misschien door het fout te plaatsen.
Moest iemand weten hoe te fixen zou een enorme hulp zijn, ook links naar goede info ivm design en php is welkom.

7 antwoorden

Gesponsorde links
Offline Martijn - 13/06/2008 12:06
Avatar van Martijn Crew PHP wat je zou kunnen doen, is alle file names in 1 array zetten en dan dit:

  1. $i=0;
  2. echo"<table>";
  3. foreach($array as $key=>$value){
  4. if($i==0){echo"<tr>"; $einde='nee';}
  5. echo"<td>".$value.".jpg</td>";
  6. $i++;
  7. if($i==5){$i=0; echo"</tr>";$einde='ja';}
  8. }
  9. if($einde=='nee'){echo"<td colspan='10'>&nbsp;</td></tr>";}
  10. echo"</table>";


dat $einde deel zorgt ervoor dat als je laatste regel bv maar 3 foto's heeft, ie wel netjes de regel vult (met n lege <td>)
Offline ArComAr - 13/06/2008 12:10 (laatste wijziging 13/06/2008 12:46)
Avatar van ArComAr VB.NET gevorderde Ik denk dat je best je foto's dan laat zien in een table. Je gaat dan wel een variabele moeten bijhouden die het aantal foto's telt.

Dit zou zo ongeveer je structuur moeten zijn:
  1. //lees data in
  2. echo "<table><tr>";
  3. $count = 0;
  4. for ($i=0;$i<$numrows;$i++){
  5. $myrow = mysql_fetch_array($result);
  6. echo "<td><img src='".$myrow['thumbnail']."'/></td>";
  7. if ($count == 5 && $i != $numrows-1){
  8. echo "</tr><tr>";
  9. }
  10. }
  11. echo "</tr></table>";
Offline Urbanusfan - 14/06/2008 01:31
Avatar van Urbanusfan Lid Ik heb bovenstaande code (van ArComAr) aangepast naar de oorspronkelijke code:

http://www.plaatscode.be/10586/

Maar krijg helemaal niets te zien.
De kleine afbeeldingen zitten in de databank als 'klein' en er komt een 'a href'-tag bij kijken om naar de grotere afbeelding te gaan, wat allemaal goed blijkt te werken met de code uit het eerste bericht.
Enkel het design laat de wensen over, de pagina met de eerste code kan je online raadplegen (enkel via de rechtstreekse link):
www.urbanusfan.be/urbanus/foto.php

Iemand een idee waar het fout gaat?

Alvast bedankt voor de info.
Offline zointer - 14/06/2008 04:04
Avatar van zointer HTML gevorderde
  1. <table width="590">
  2. <?php
  3. $res = mysql_query("SELECT id, klein FROM jefotosql ORDER BY id ASC ");
  4.  
  5. $i = 1; //tellen vanaf 1
  6. while($myrow = mysql_fetch_assoc($res)){
  7. if($i == 0){
  8. echo '<tr>';
  9. }
  10. echo '<td><a href="covers.php?covers='.$myrow["id"].'">';
  11. echo '<img src='.$myrow['klein'].'/></a></td>';
  12.  
  13. if($i == 5){ //aantal rijen dus 5
  14. echo '</tr>';
  15. $i = 0;
  16. }
  17. else{$i++;}
  18. }
  19. ?>
  20. </table>
Offline Urbanusfan - 15/06/2008 12:58
Avatar van Urbanusfan Lid Bedankt voor de hulp, het komt goed, er zit nog maar één klein foutje in, de eerste rij is idd maar vijf afbeeldingen, daarna sluit de tabelrij pas na zes invoegingen. Heb de html bekeken die in de browser verschijnt, iemand een idee welke kleine wijziging er nog moet gebeuren?

De code zoals ze nu op de server staat:
http://www.plaatscode.be/10719/
Het verschil met de code van het vorige bericht (van zointer) zijn echo-toevoegingen, een stuk voor het design en om de data van verschijning bij de afbeelding te plaatsen.

De huidige testpagina:
http://www.urbanusfan.be/urbanus/foto4.php

De afbeeldingen 'zweven' nog wat, maar dit komt door de datum die eronder staan, soms 1 en dan weer 2 regels hoog (soms zelfs 3), dit komt wel goed.
Offline ArComAr - 15/06/2008 13:22
Avatar van ArComAr VB.NET gevorderde De eerste keer staat de startwaarde van $i op 1, maar als $i == 5, dan zet je deze waarde op 0 waardoor er dus 6 afbeeldingen gaan komen. 2 mogelijk oplossingen:

1. ofwel verander je de startwaarde naar 0 en dan verander je ook de vergelijken de waarde naar 4 (if($i == 4){ //aantal rijen dus 5)

2. je veranderd "$i = 0" in de in de if naar "$i=1"
Offline Urbanusfan - 15/06/2008 14:24
Avatar van Urbanusfan Lid Ok, heel erg bedankt!
Heb de startwaarde op het einde naar 1 gezet en nu komt het goed.

if($i == 5){ //aantal rijen dus 5
echo '</tr>';
$i = 1;


Bedankt voor de snelle hulp!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.215s