Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: tekst w boxach w 2 kolumnach o różnych wielkościach
Forum PHP.pl > Forum > PHP
trzykas
Witam serdecznie!
Mam taki problem
http://ahtak.nspace.pl/strony/dowcipy2/dow...-25-Glupie.html
Jak zauważyliście boxy czerwone nachodzą na prawą stronę mimo ze maja float left
boxy białe nachodzą na lewa mimo ze maja float right
szerokości sa ok z kąd to się bierze jak dodam clear:both /right//left/none to zaczyna to jakos wygladac ale mimo wszystko wtedy pojawia się problem miedzy boxami ponieważ boxy po lewej czerwone wyswietlaja sie odpowiednio a boxy białe rozpoczynają się dopiero po zakończeniu mu odpowiadajacego boxu czerwonego.Chciałbym zeby dowcipy wyświetlały się w taki sposób jak
http://wcipy.pl/dowcipy,studenci-i-studia,121.html

podaje kod php

Kod
$result = mysql_query($query);
$obAmount=mysql_num_rows($result);
echo $obAmount;
if($obAmount==0)
echo('<br><table  width="100% cellpadding="0" cellspacing="0" class="brd">
        <tr><td class="m2">Nic nie znaleziono :( </td></tr>
        <tr><td width="100%"><div class="newsy">Niestety nic nie znaleziono:(</td></tr>
        ');
        else{
echo '
<br>
<table  width="100% cellpadding="0" cellspacing="0" class="brd">
        <tr><td class="m2">Znaleziono : '.$obAmount. ' kawały dla frazy: '.$_GET['search'].' </td></tr>
        <tr><td width="100%"><div class="newsy">';
echo '<table width="700px" id="kawal_d">';
for($x=0;$x<$obAmount;$x++)
{
$row=mysql_fetch_assoc($result);
if (isset ($categories[$row['category']]))
    $cat = sprintf("%s", $categories[$row['category']]);
else
    $cat = (string) '';

  echo '  
<div id="lewa">' . $row['opis'] . '</div>';
  $row = mysql_fetch_assoc($result);
      echo ' <div id="prawa">' . $row['opis'] . '</div>
';
                        }}
}
?></table>
</td></tr>
        </table>


oraz kod css

Kod
#lewa{width:320px;float:left; margin:10px;display:inline; border:1px #000 solid; background:#F00}
#prawa{width:320px;float:right;margin:10px;display:inline;border:1px #000 solid; }

wdzieczny za pomoc
Prym
hi
primo http://wcipy.pl/dowcipy,studenci-i-studia,121.html - to jest oparte na tabelce winksmiley.jpg
a przechodząc do twojego problemu to z uwagi na rózne długości twoich bloków floatami mozesz sie nie wstrzelic tak żeby było dobrze.
propozycja
zamiast floatować prawo lewo każdy blok dodaj 2 głowne bloki prawy i lewy (je floatuj) a bloczki wpakuj jako normalne divy do tych wieżowców smile.gif

może pomoże takie wspomaganie
trzykas
ale jak wpakować w 2 wierzowce skoro to jest w pętli ?
chodzi bardziej o to zeby

|lewy1| |prawy1|
|lewy1| |prawy2|
|lewy2| |prawy3|

i mamy 3 prawe i 2 lewe oczywiscie prawe sie skończą o jeden szybciej i lewe beda na dole wystawac chodzi o to zeby nie robiło odstępów miedzy divami

jest jakiś sposób ?
Prym
więc w pętli for zamiast echować kod wrzucaj do zmiennej prawa lewa:

  1. <?php
  2. $lewa.='<div id="lewa">' . $row['opis'] . '</div>';
  3.  
  4. $prawa.= ' <div id="prawa">' . $row['opis'] . '</div>';
  5. ?>


a po pętli for wstaw w te dwa wieżowce smile.gif

  1. <?php
  2. echo '<div id="lewaWieza">'.$lewa.'</div><div id="prawaWieza">'.$prawa.'</div>';
  3. ?>


oczywiscie zamiast dodawać to do zmiennej w pętli możesz to wrzucać w tablice lewa prawa wtedy masz możliwośc implodowania czegoś pomiędzy bloki smile.gif - np. dodatkowego br lub bloku z czyms stałym tekstu itd

  1. <?php
  2. $lewa[]='<div id="lewa">' . $row['opis'] . '</div>';
  3.  
  4. $prawa[]= ' <div id="prawa">' . $row['opis'] . '</div>';
  5. ?>


a po pętli for wstaw w te dwa wieżowce smile.gif

  1. <?php
  2. echo '<div id="lewaWieza">'.implode("gumis",$lewa).'</div><div id="prawaWieza">'.implode("gumis",$prawa).'</div>';
  3. ?>
trzykas
Kod
1
2
3
4

<?php
echo '<div id="lewaWieza">'.implode("gumis",$lewa).'</div><div id="prawaWieza">'.implode("gumis",$prawa).'</div>';
?>


wszystko bedzie ok jesli nie zamkne </div> </div> bo wtedy nie bedzie wierz tylko wsumie to co ja napisałem divy w divach małe
jak zamkniemy
Kod
1
2
3
4

<?php
echo '<div id="lewaWieza">'.implode("gumis",$lewa).'<div id="prawaWieza">'.implode("gumis",$prawa).'';
?></div></div>

powinno byc okej chyba ze sie myle ?

niestety żaden ze sposobów nie działa

a jeszcze jest przecież konieczne
$row = mysql_fetch_assoc($result);
żeby sie wyniki nie dublowały ;/
Prym
tak szczerze mówiąc to problemu nie będzie bo możesz w divie zawierać ile chcesz divów i zawsze zamykane są od środka. czyli małe potem duże.

co do samej pętli to kolejne szczerze nielubie forów w przetwarzaniu mysql wole:

Kod
$l=$p=0;
while($row=mysql_fetch_array()) {

if ($l==0) {
   $lewa[]='<div id="lewa">' . $row['opis'] . '</div>';
   $l=1;
   $p=0;
} elseif ($p==0) {
   $prawa[]= ' <div id="prawa">' . $row['opis'] . '</div>';
   $l=0;
   $p=1;
}
}


i każdy loop jest jednym wierszem z odpowiedzi bazy więc nie ma możliwości powtórzenia wpisu i powinno ładnie porozkładac na tablice

co do zamknięc diuva to musisz zamknac osobno lewy i prawy - i dac im flioat left i right.
trzykas
no ten kod juz zaczyna być sensowny tylko w którym miejscu otworzyć i zamknąć lewyWierzowiec i prawyWierzowiec ? bo jak otworzę go w pętli prawda to bedzie sie powielał mimo ze zamknę go za pętla prawda ?
Ale to moze pójsc w jednym divie wrzucajac małe boxy lewy i prawy
Prym
smile.gif "wieżowców" w ogóle nie otwierasz w pętli czy przed nią. tworzysz pętlę i wrzucasz dane w zmienne nie na strone. a dopiero PO pętli wstawiasz gotowe wygenerowane zmienne w wieżowce - na samym końcu exclamation.gif!

  1. <?php
  2. $l=$p=0;
  3. while($row=mysql_fetch_array()) {
  4.  
  5. if ($l==0) {
  6.   $lewa[]='<div id="lewa">' . $row['opis'] . '</div>';
  7.   $l=1;
  8.   $p=0;
  9. } elseif ($p==0) {
  10.   $prawa[]= ' <div id="prawa">' . $row['opis'] . '</div>';
  11.   $l=0;
  12.   $p=1;
  13. }
  14. }
  15. echo '<div id="lewaWieza">'.implode("gumis",$lewa).'</div><div id="prawaWieza">'.implode("gumis",$prawa).'</div>';
  16. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.