Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> tekst w boxach w 2 kolumnach o różnych wielkościach
trzykas
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 27.01.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Prym
post
Post #2





Grupa: Zarejestrowani
Postów: 100
Pomógł: 11
Dołączył: 20.05.2007
Skąd: z fotela :)

Ostrzeżenie: (0%)
-----


hi
primo http://wcipy.pl/dowcipy,studenci-i-studia,121.html - to jest oparte na tabelce (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

może pomoże takie wspomaganie
Go to the top of the page
+Quote Post
trzykas
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 27.01.2009

Ostrzeżenie: (0%)
-----


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 ?

Ten post edytował trzykas 27.02.2009, 00:26:41
Go to the top of the page
+Quote Post
Prym
post
Post #4





Grupa: Zarejestrowani
Postów: 100
Pomógł: 11
Dołączył: 20.05.2007
Skąd: z fotela :)

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

  1. <?php
  2. echo '<div id="lewaWieza">'.implode("gumis",$lewa).'</div><div id="prawaWieza">'.implode("gumis",$prawa).'</div>';
  3. ?>
Go to the top of the page
+Quote Post
trzykas
post
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 27.01.2009

Ostrzeżenie: (0%)
-----


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 ;/
Go to the top of the page
+Quote Post
Prym
post
Post #6





Grupa: Zarejestrowani
Postów: 100
Pomógł: 11
Dołączył: 20.05.2007
Skąd: z fotela :)

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
trzykas
post
Post #7





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 27.01.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Prym
post
Post #8





Grupa: Zarejestrowani
Postów: 100
Pomógł: 11
Dołączył: 20.05.2007
Skąd: z fotela :)

Ostrzeżenie: (0%)
-----


(IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 11:42