login  Naam:   Wachtwoord: 
Registreer je!
 Forum

foto's met omschrijving weergeven in kolommen (Opgelost)

Offline Gezienus - 25/09/2009 18:55
Avatar van GezienusLid Ik geef een aantal foto's met omschrijvig weer door onderstaande code
  1. <?php
  2. print '<table width=40%><tr><th>Foto</th><th>Omschrijving</th></tr>';
  3.  
  4. $sql_details = mysql_query("SELECT * FROM fotos ");
  5. while ($row_detail = mysql_fetch_array($sql_details)) {
  6. $afbeelding = $row_detail['afbeelding'];
  7. $omschrijving = $row_detail['omschrijving'];
  8. $prijs = $row_detail['prijs'];
  9.  
  10. print '<td>&nbsp;</td><td>&nbsp;</td></tr>';
  11. print '<td rowspan=2><img src="'.$afbeelding.'" alt="" width="100" height="115"/></td>';
  12. print '<td valign="bottom">'.$omschrijving.'</td>';
  13. print '</tr>';
  14. print '<tr>';
  15. print '<td valign="bottom">'.$prijs.'</td>';
  16. print '</tr>';
  17. }
  18. print '</table>';
  19.  
  20. ?>


Hoe kan ik de foto's nu 2 kolommen weergeven?

13 antwoorden

Gesponsorde links
Offline Martijn - 27/09/2009 17:40
Avatar van Martijn Crew PHP ik heb geen zin om t voor je t maken, maar ik zal uitleggen wat je moet doen:

Wat er nu gebeurd is dat elke keer dat het while lus word uitgevoerd er een nieuwe <tr> word aangemaakt, daardoor komt alles op een nieuwe regel. Wat je wilt is dat die <tr> elke twee rijen word aangemaakt.
Dat doe je zo
Buiten je while doe je ook een print '<tr>';, en na je loop zet je '</tr>' neer. De tr's uit je loop haal je weg. Nu zal alles op 1 regel komen te staan.

Buiten je while zet je dan neer $i=1; en in je loop zet je helemaal onderaan:
  1. if($i==2){echo"</tr><tr>";$i=1;}
  2. else{ $i++;}

en dan komt het nu als het goed is in setjes van 2
Offline Gezienus - 29/09/2009 09:40
Avatar van Gezienus Lid De uitlijning is niet correct als ik bovenstaande uitvoer.
Ik heb nl. naast de foto (colspan=2) 2 rijen staan met tekst.
Deze worden nu ook naast elkaar gezet.

Wie helpt mij verder?
Offline ArieMedia - 29/09/2009 09:57
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Gezienus schreef:
De uitlijning is niet correct als ik bovenstaande uitvoer.
Ik heb nl. naast de foto (colspan=2) 2 rijen staan met tekst.
Deze worden nu ook naast elkaar gezet.

Wie helpt mij verder?
Het antwoord wat DeviourSoul geeft is wel goed, je opent namelijk geen tr de eerste keer, dus heb je een tabel die niet klopt.
Daarnaast krijg je nu waarschijnlijk nog een loze tabel eronder omdat je mysql_fetch_array gebruikt. Aan mysql_fetch_assoc heb jij genoeg. (gebruik deze dus)
Offline Gezienus - 29/09/2009 10:24 (laatste wijziging 29/09/2009 10:27)
Avatar van Gezienus Lid Sorry dat ik het snap, maar de uitlijning bij mij blijft fout

Ik heb nu de volgende code
  1. <?php
  2. include ("config/config.php");
  3.  
  4.  
  5.  
  6. $sql_details = mysql_query("SELECT * FROM `fotos` WHERE `soort` = 'Armbanden' ORDER BY id DESC");
  7. $i=1;
  8. print '<tr>';
  9. while ($row_detail = mysql_fetch_assoc($sql_details)) {
  10. $afbeelding = $row_detail['afbeelding'];
  11. $omschrijving = $row_detail['omschrijving'];
  12. $prijs = $row_detail['prijs'];
  13.  
  14. print '<td rowspan=2><img src="'.$afbeelding.'" alt="" width="100" height="115"/></a></td>';
  15. print '<td valign="bottom">'.$omschrijving.'</td>';
  16. print '<td valign="bottom">'.$prijs.'</td>';
  17. if($i==2){print'</tr><tr>';$i=1;}
  18. else{ $i++;}
  19. }
  20. print '</tr>';
  21. print '</table>';
  22.  
  23. ?>


Wat doe ik nu nog niet goed?
Offline ArieMedia - 29/09/2009 10:47
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Bekijk eens je HTML (broncode output) en zet de border van je tabel eens op 1.
Wat valt je nu op en wat denk je wat veranderd moet worden.

Eerst zelf kijken dan pas vragen, als je hier een antwoord op kan geven help ik je verder.
Offline Gezienus - 29/09/2009 11:41
Avatar van Gezienus Lid Het zal wel aan mij liggen, maar ik snap niet wat je bedoeld. Als ik de border op 1 zet zie ik alleen dat hij de velden 'omschrijving' en 'prijs' niet onder elkaar naast de foto zet, maar het veld 'prijs zet hij eronder. Hiernaast begint dan de volgende foto.
Offline ArieMedia - 29/09/2009 11:54
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Gezienus schreef:
Het zal wel aan mij liggen, maar ik snap niet wat je bedoeld. Als ik de border op 1 zet zie ik alleen dat hij de velden 'omschrijving' en 'prijs' niet onder elkaar naast de foto zet, maar het veld 'prijs zet hij eronder. Hiernaast begint dan de volgende foto.
op lijn 9 staat een tr die moet je in de while-loop gooien. en die andere </tr> moet je er uit halen.

Waarschijnlijk heb je nog niet goed naar de broncode gekeken die er uit komt.
Offline Gezienus - 29/09/2009 11:58
Avatar van Gezienus Lid Volgens mij staat er in mijn while-loop geen </tr>
Deze staat volgens mij buiten de loop
Offline vinTage - 29/09/2009 12:20
Avatar van vinTage Nieuw lid post eens een stukje gegenereerde source.
Offline Gezienus - 29/09/2009 12:33
Avatar van Gezienus Lid Dit is de code:

  1. <?php
  2. include ("config/config.php");
  3.  
  4.  
  5. print '<table border=1></tr>';
  6.  
  7. $sql_details = mysql_query("SELECT * FROM `fotos` WHERE `soort` = 'Armbanden' ORDER BY id DESC");
  8. $i=1;
  9. print '<tr>';
  10. while ($row_detail = mysql_fetch_assoc($sql_details)) {
  11. $afbeelding = $row_detail['afbeelding'];
  12. $omschrijving = $row_detail['omschrijving'];
  13. $prijs = $row_detail['prijs'];
  14.  
  15. print '<td rowspan=2><img src="'.$afbeelding.'" alt="" width="100" height="115"/></a></td>';
  16. print '<td valign="bottom">'.$omschrijving.'</td></tr>';
  17. print '<td valign="bottom">'.$prijs.'</td>';
  18. if($i==2){print'</tr><tr>';$i=1;}
  19. else{ $i++;}
  20. }
  21. print '</tr>';
  22. print '</table>';
  23.  
  24.  
  25. ?>


Resultaat op www.gez-oldenkamp.nl
pagina kettingen
Offline ArieMedia - 29/09/2009 15:33 (laatste wijziging 29/09/2009 15:56)
Avatar van ArieMedia Gouden medaille

PHP ver gevorderde
Gezienus schreef:
Dit is de code:

[..code..]

Resultaat op www.gez-oldenkamp.nl
pagina kettingen

Misschien een beetje een rare vraag,
maar weet je zelf wel waar je mee bezig bent, of speel je maar wat aan?
Dit is jou output:
  1. <tr>
  2. <th width="12%"></th>
  3. <th width="27%">Omschrijving</th>
  4. <th width="12%"></th>
  5. <th width="27%">Omschrijving</th>
  6. </tr>
  7. <tr>
  8. <td>&nbsp;</td>
  9. </tr>
  10. <tr>
  11. <td rowspan="2"><img src="fotos/img_0318.jpg" alt="" width="100" height="115"></td>
  12. <td valign="bottom">Laatste keer</td>
  13. </tr>
  14. <tr>
  15. <td valign="bottom">13</td>
  16. <td rowspan="2"><img src="fotos/img_0247.jpg" alt="" width="100" height="115"></td>
  17. <td valign="bottom">test</td>
  18. </tr>
  19. <tr>
  20. <td valign="bottom">19</td>
  21. </tr>
  22. <tr>
  23. <td rowspan="2"><img src="fotos/img_0221.jpg" alt="" width="100" height="115"></td>
  24. <td valign="bottom">Ketting met zwarte en kristallen glaskralen</td>
  25. </tr>
  26. <tr>
  27. <td valign="bottom">€ 15,00</td>
  28. </tr>


En hier klopt 0,niks van. Hopelijk kan je zelf al wel raden wat...

Inderdaad de ene keer heb je 4x een veld soms 1 en dat kan dus niet. gebruik rowspan om dit goed te maken of zet er extra velden in. het aantal velden moet altijd gelijk zijn, anders krijg je een niet kloppende tabel (zoals nu)
Offline vinTage - 29/09/2009 15:58
Avatar van vinTage Nieuw lid Als je nou eens gewoon zoals het hoort geen/zo min mogelijk html print/echoed...
Dus je gaat gewoon even uit php en gebruikt pure html code, dan zie je (als je editor ook wysiwyg heeft) wat je moet maken...ik snap uberhaupt nooit waarom mensen zoveel html echoen...dat leest toch voor gene meter...

  1. <table ....>
  2. <?php
  3. //blablabla code
  4. while($si & $la)
  5. {
  6. ?>
  7. plain html meuk
  8. <?php
  9. }
  10. //meer code...
  11. ?>
  12. </table>
Offline Gezienus - 29/09/2009 17:39 (laatste wijziging 29/09/2009 18:50)
Avatar van Gezienus Lid Ik ben er nu achter waarom de uitlijning niet juist is.
Ga nu proberen een oplossing daar voor te vinden.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.267s