Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> podzial wyciagnietych danych
Fo
post 10.08.2003, 19:52:01
Post #1





Grupa: Zarejestrowani
Postów: 401
Pomógł: 0
Dołączył: 18.04.2003
Skąd: Trójmiasto

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


mhm mam troche zonka bo niewiem jak zrobic takie cus :
wyciagac sobie dane textowe z bazy - dokladnie zawartosc jedengo pola w jednej tabeli... no i chcialbym aby (bo text jest dlugi) ten tekst rozlozyl sie na dwie kolumny
-> 1wsza | 2ga
mhm tylko jak to zrobic, ma ktos jakis niecny plan jak sie do tego zabrac ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
cahe
post 10.08.2003, 20:08:09
Post #2





Grupa: Zarejestrowani
Postów: 223
Pomógł: 0
Dołączył: 22.03.2003

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


Podzielić tekst na wyrazy. Potem podzielić na połowe. Pierwszą połowe umieścić w pierwszej kolumnie - drugą w drugiej :-).
Go to the top of the page
+Quote Post
adwol
post 10.08.2003, 20:09:36
Post #3





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

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


Cytat
mhm mam troche zonka bo niewiem jak zrobic takie cus :
wyciagac sobie dane textowe z bazy - dokladnie zawartosc jedengo pola w jednej tabeli... no i chcialbym aby (bo text jest dlugi) ten tekst rozlozyl sie na dwie kolumny
-> 1wsza | 2ga
mhm tylko jak to zrobic, ma ktos jakis niecny plan jak sie do tego zabrac ?

No, wypadałoby chyba podzielić go na dwie części w połowie. O to Ci chodzi?
Jak tak to może się przydać chunk_split() i wordwrap(), albo zwykły substr().
Go to the top of the page
+Quote Post
cahe
post 10.08.2003, 21:16:49
Post #4





Grupa: Zarejestrowani
Postów: 223
Pomógł: 0
Dołączył: 22.03.2003

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


Cytat
No, wypadałoby chyba podzielić go na dwie części w połowie. O to Ci chodzi?
Jak tak to może się przydać chunk_split() i wordwrap(), albo zwykły substr().


Substr raczej odpada - potnie nam słowa na kawałki. Wordwrap tez się wywala przy dłuższych słowach. chunk_split to samo...
Go to the top of the page
+Quote Post
spenalzo
post 10.08.2003, 21:27:01
Post #5





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Nie wiem czy o to chodziło:
[php:1:fdc0e3fe58]<?php
function podziel($res)
{
$tmp=explode(" ",$res);
$polowa=ceil(count($tmp);
$txt ="<table border="0" width="400">";
$txt.="<tr><td width="50%">";
$txt.=implode(" ",array_slice($tmp,$polowa));
$txt.="</td><td width="50%">";
$txt.=implode(" ",array_slice($tmp,(0-$polowa))); // ***
$txt.="</td></tr></table>";
return($txt);
}
?>[/php:1:fdc0e3fe58]
Nie jestem pewien co do miejsca oznaczonego "***" (być może trzeba tam będzie dać '1' zamiast '0'), ale powinno działać.
Zwróci tabelkę z dwiema kolumnami ładnie wypełnionymi tekstem.


--------------------

Go to the top of the page
+Quote Post
spenalzo
post 10.08.2003, 21:57:49
Post #6





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Sorry zamień tamtą linijkę numer 5 na poniższą:
[php:1:66652e941c]<?php
$polowa=ceil(count($tmp)/2);
?>[/php:1:66652e941c]


--------------------

Go to the top of the page
+Quote Post
Fo
post 10.08.2003, 23:06:58
Post #7





Grupa: Zarejestrowani
Postów: 401
Pomógł: 0
Dołączył: 18.04.2003
Skąd: Trójmiasto

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


hmm ponizszy kodzik : [php:1:f26019e8bb]function podziel($res)
{
$tmp=explode(" ",$res);
$polowa=ceil(count($tmp)/2);
$txt ="<table border="0" width="400">";
$txt.="<tr><td width="50%">";
$txt.=implode(" ",array_slice($tmp,$polowa));
$txt.="</td><td width="50%">";
$txt.=implode(" ",array_slice($tmp,(0-$polowa))); // ***
$txt.="</td></tr></table>";
return($txt);
}
mysql_connect("localhost","root","admin");
mysql_select_db("baza");

$query = mysql_query("SELECT * FROM tabela;");
while ($record = mysql_fetch_array($query)) {
$dane = $record[3];
echo podziel($dane);
}[/php:1:f26019e8bb] ladnie dzieli na dwie kolumny wyciagniete dane ale jest jeden problem ze to sa takie same dwie kolumny... i tak samo sa og gory przyciete.. tzn text ktory ma jakias cala strone w 1024x768 on jakby zostal od pewnego momentu ucienty... mhm :|
Go to the top of the page
+Quote Post
spenalzo
post 10.08.2003, 23:10:01
Post #8





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Zamień linijkę nr 8 na tą:
[php:1:4d1d48ebb7]
$txt.=implode(" ",array_slice($tmp,0));
[/php:1:4d1d48ebb7]
a linijkę nr 10 na tą:
[php:1:4d1d48ebb7]<?php
$txt.=implode(" ",array_slice($tmp,$polowa));
?>[/php:1:4d1d48ebb7]


--------------------

Go to the top of the page
+Quote Post
KaMeLeOn
post 10.08.2003, 23:14:04
Post #9





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

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


Cytat
ladnie dzieli na dwie kolumny wyciagniete dane ale jest jeden problem ze to sa takie same dwie kolumny... i tak samo sa og gory przyciete.. tzn text ktory ma jakias cala strone w 1024x768 on jakby zostal od pewnego momentu ucienty... mhm :|

Szczerze mówiąc ciężko jest osiągnąć dokładnie coś takiego samym php. Różnie to może wyglądać w różnych rozdzielczościach więc to bardziej zadanie dla języka client-side. php nie jest w stanie przewidzieć jakiej rozdzielczości używa klient, jak rozłożone są tabelki na stronie i jakiej są długości.


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post
spenalzo
post 10.08.2003, 23:18:48
Post #10





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Cytat
php nie jest w stanie przewidzieć jakiej rozdzielczości używa klient, jak rozłożone są tabelki na stronie i jakiej są długości.

Ale można mniej więcej "na sztywno" określić szerokość tabelki, i ewentualnie zastosować wordwrap
[php:1:ce2aa7c9a3]<?php
wordwrap(wyraz,20,"-<br>");
?>[/php:1:ce2aa7c9a3]
co spowoduje podzielenie słowa i zakończenie myślnikiem, coś jak w gazetach na przykład.


--------------------

Go to the top of the page
+Quote Post
spenalzo
post 10.08.2003, 23:22:20
Post #11





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Linijka 8:
[php:1:75abaf3c45]<?php
$txt.=implode(" ",array_slice($tmp,0,$polowa));
?>[/php:1:75abaf3c45]

Linijka 10:
[php:1:75abaf3c45]<?php
$txt.=implode(" ",array_slice($tmp,$polowa,$polowa)); ?>[/php:1:75abaf3c45]


--------------------

Go to the top of the page
+Quote Post
Fo
post 10.08.2003, 23:28:51
Post #12





Grupa: Zarejestrowani
Postów: 401
Pomógł: 0
Dołączył: 18.04.2003
Skąd: Trójmiasto

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


panie i panowie : brawa dla spenalzo winksmiley.jpg
[php:1:4d0d9c955a]function podziel($res)
{
$tmp=explode(" ",$res);
$polowa=ceil(count($tmp)/2);
$txt ="<table border="0" width="400">";
$txt.="<tr><td width="50%" valign="top">";
$txt.=implode(" ",array_slice($tmp,0,$polowa));
$txt.="</td><td width="50%" valign="top">";
$txt.=implode(" ",array_slice($tmp,$polowa,$polowa));
$txt.="</td></tr></table>";
return($txt);
}
mysql_connect("localhost","root","admin");
mysql_select_db("test");

$query = mysql_query("SELECT * FROM tabela;");
while ($record = mysql_fetch_array($query)) {
$dane = $record[0];
echo podziel($dane);
}[/php:1:4d0d9c955a] nio teraz chodzi gucio ... smile.gif
Go to the top of the page
+Quote Post
spenalzo
post 10.08.2003, 23:30:15
Post #13





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Cytat
panie i panowie : brawa dla spenalzo winksmiley.jpg

A jednak nowy avatar Inżyniera coś dał laugh.gif


--------------------

Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 10:06