|
[ pvujic @ 29.08.2005. 21:48 ] @
| Pozdrav svima,
Trebao bi mi netko od vas voljnih sloziti skriptu za preuzimanje podataka iz mysql db.
Napravio sam si "news" table u db, evo sql dumb:
Code:
CREATE TABLE `news` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(255) NOT NULL default '',
`text` text NOT NULL,
`date` varchar(50) NOT NULL default '',
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
Zelio da mi se podatci iz te table prikazu(da izvuce samo zadnjih 10 novosti, a text svake novosti da je ogranice na 200 slova) na stranici npr ovako:
Code:
<a href="index.php?id=$id">$title</a> @ $date
<br>
$text
Bilo bi dobro kada se klikne na "title" da se moze procitati cijela novost. (npr. index.php?id=1 prikazuje samo novost pod "id" = 1 )
Ljudi znam da jako mnogo trazim, ali nadam se da ce se naci netko tko bi mi to mogao napraviti. Unaprijed jedno veliko hvala! |
[ Predrag Gajic @ 29.08.2005. 22:31 ] @
Neznam kako da se izvuče samo 200 karaktera.Mada ja radim na sledeći način.
Code: <?php
$result = mysql_query('SELECT * FROM news order by id DESC limit 0,10 ') or
die (mysql_error());
while ($row = mysql_fetch_array($result))
{
echo "<a href='index.php?id=$row[id]'>$row[title]</a> datum:$row[date]<br>
$row[text]
";
}
mysql_free_result($result);
?>
Za ovo da se prikazuje samo vest npr. id=1
idex.php
Code: <?php
$id=$_GET['id'];
$result = mysql_query("SELECT * FROM news where id='$id' limit 0,1") or
die (mysql_error());
while ($row = mysql_fetch_array($result))
{
echo "$row[text]";
?>
Mada "skraćeni tekst" možeš da rešiš dodavanjem jos jednog polja npr.kratak_text i onda na stranici gde želiš ubaciš $row[kratak_text] ...
Nadam se da sam ti donekle pomogao pošto ni Ja ne znam najbolje PHP,mada ćeš dobiti bolja i jednostavnija rešenja od nekog drugog...
[ Nemanja Avramović @ 29.08.2005. 23:11 ] @
za skraceni tekst.. ovako sam ja to radio pre... verovatno moze jednostavnije, nisam se bash zanimao sa ovim...:
Code:
error_reporting(0); //za svaki slucaj...
//definisi promenljive
$tekst = 'moj veeeeeeeeeeeeeeeeeeeeeeeeeeliki teeeeeeekst, moj veeeeeeeeeeeeeeeeeeeeeeeeeeeeeliki teeeeeeekst, moj veeeeeeeeeeeeeeeeeeeeeeeeeeeeeliki teeeeeeekst';
$skrati_na = 50;
//ne diraj
$skratinaminusjedan = $skrati_na - 1;
if (strlen($tekst)>$skratinaminusjedan) {
for ($i = 0; $i < $skrati_na; $i++) {
$deoteksta = $deoteksta . $tekst[$i];
}
$deoteksta = $deoteksta . '...'; //add '...'
}
else {
$deoteksta = $tekst;
}
// ispis
echo $deoteksta;
[Ovu poruku je menjao JaHvram dana 30.08.2005. u 00:12 GMT+1]
[ Dejan Topalovic @ 30.08.2005. 08:37 ] @
[ noviKorisnik @ 30.08.2005. 09:02 ] @
[ Nemanja Avramović @ 30.08.2005. 10:12 ] @
stripy, kako iskoristiti wordwrap za `odsecanje`? daj mi primer plz
...pa da, znao sam da ima nesto kao echo substr('abcdef // tekst duzi od 30 karaktera', 0, 30); // abcd sto moze da resi problem... samo uradis proveru (kao ja gore) da bi eventualno dodao '...' na kraju ako je zaista odsechen string
[Ovu poruku je menjao JaHvram dana 30.08.2005. u 11:13 GMT+1]
[ Nemanja Avramović @ 30.08.2005. 10:33 ] @
evo jos nesto zanimljivo iz php manual-a:
Code:
// example use:
// elliStr("have a nice day",8,1);
// results:
// have a nice...
//
// elliStr("have a nice day",8,0);
// results:
// have a n...
function elliStr($s,$n,$e) {
if ( isset($e) ) {
if ( $e == 1 ) {
if ( substr(substr($s, 0, $n), -1, 0) != " " ) {
for ( $x = 0; $x <= strlen($s); $x++ ) {
if ( substr($s, strlen(substr($s, 0, $n))+$x-1, 1) == " " ) {
$newendval = $x;
$stop = 1;
} else {
print(substr(substr($s, 0, $n), strlen(substr($s, 0, $n)), $x));
}
if ( isset($stop) ) {
return substr($s, 0, $n+$x-1) . "...";
}
}
} else {
return substr($s, 0, $n) . "...";
}
} else {
if (strlen($s) > $n) {
return substr($s, 0, $n) . "...";
} else {
return $s;
}
}
} else {
return false;
}
}
ovo moze da odseche string na kraju rechi a ne na tacno odredjenom mestu (kako ne bi prekinulo rech)
[ pvujic @ 30.08.2005. 12:48 ] @
Citat: Predrag Gajic: Neznam kako da se izvuče samo 200 karaktera.Mada ja radim na sledeći način.
Code: <?php
$result = mysql_query('SELECT * FROM news order by id DESC limit 0,10 ') or
die (mysql_error());
while ($row = mysql_fetch_array($result))
{
echo "<a href='index.php?id=$row[id]'>$row[title]</a> datum:$row[date]<br>
$row[text]
";
}
mysql_free_result($result);
?>
Za ovo da se prikazuje samo vest npr. id=1
idex.php
Code: <?php
$id=$_GET['id'];
$result = mysql_query("SELECT * FROM news where id='$id' limit 0,1") or
die (mysql_error());
while ($row = mysql_fetch_array($result))
{
echo "$row[text]";
?>
Mada "skraćeni tekst" možeš da rešiš dodavanjem jos jednog polja npr.kratak_text i onda na stranici gde želiš ubaciš $row[kratak_text] ...
Nadam se da sam ti donekle pomogao pošto ni Ja ne znam najbolje PHP,mada ćeš dobiti bolja i jednostavnija rešenja od nekog drugog...
Jeli bi se mogle ove dvije skripte spojiti u jednu?
[ Nemanja Avramović @ 30.08.2005. 15:23 ] @
pa sta treba da citas? sve ili samo jednu vest?
[ pvujic @ 30.08.2005. 16:23 ] @
Treba da se na index.php izlistaju sve vijesti i da sve svaku vijesti moze cijelu procitati.
[ sale83 @ 31.08.2005. 05:48 ] @
Sto se tice skracivanja stringa tj dugackog texta na reci tako da ne poremetis odredjenu rec mogao bi to ovako da uradis
Code:
$string = "Rec1 Rec2 Rec3 Rec4 Rec5 Rec6
Rec3 Rec7 Rec8 Rec9 Rec10 Rec11 Rec12 Rec13 Rec14 Rec15 Rec16";
// $Broj_reci = 10; ovo ti je koliko oces reci da prikazes iz stringa
$Broj_reci = 10; // Prikazi 10 reci
for($j=0, $i = 0; $j < strlen($string); $j++)
{
if($string[$j] == ' ') $i++;
if($i == $Broj_reci)
break;
}
echo substr($string, 0, $j);
Pozzzzzzzz
[Ovu poruku je menjao sale83 dana 31.08.2005. u 06:57 GMT+1]
[ Nemanja Avramović @ 31.08.2005. 11:45 ] @
vesti.php (listanje svih)
Code:
<?php
$skrati_na = 20; //na koliko slova da odseche text
function elliStr($s,$n,$e) {
if ( isset($e) ) {
if ( $e == 1 ) {
if ( substr(substr($s, 0, $n), -1, 0) != " " ) {
for ( $x = 0; $x <= strlen($s); $x++ ) {
if ( substr($s, strlen(substr($s, 0, $n))+$x-1, 1) == " " ) {
$newendval = $x;
$stop = 1;
} else {
print(substr(substr($s, 0, $n), strlen(substr($s, 0, $n)), $x));
}
if ( isset($stop) ) {
return substr($s, 0, $n+$x-1) . "...";
}
}
} else {
return substr($s, 0, $n) . "...";
}
} else {
if (strlen($s) > $n) {
return substr($s, 0, $n) . "...";
} else {
return $s;
}
}
} else {
return false;
}
}
$result = mysql_query('SELECT * FROM news order by id DESC limit 0,10 ') or
die (mysql_error());
while ($row = mysql_fetch_array($result))
{
$id = $row['id'];
$title = $row['title'];
$text = $row['text'];
$date = $row['date'];
$kratak_text = elliStr($text,$skrati_na,1);
echo "<a href='citaj.php?id=$id'>$title</a> datum:$date<br>\n$kratak_text";
}
mysql_free_result($result);
?>
citaj.php (prikaz samo jedne)
Code:
$id=$_GET['id'];
$result = mysql_query("SELECT * FROM news where id='$id' limit 0,1") or
die (mysql_error());
while ($row = mysql_fetch_array($result))
{
$title = $row['title'];
$text = $row['text'];
$date = $row['date'];
echo "<h2>$title [$date]</h2><br>\n$text";
}
nisam isprobao ovo tako da moguce da ne radi... javi da li je uspelo i - srecno ;)
[Ovu poruku je menjao JaHvram dana 31.08.2005. u 12:46 GMT+1]
[ pvujic @ 31.08.2005. 17:06 ] @
JaHvram, sve radi, hvala ti puno! Imam samo jos jedno pitanje/molbu: jeli se mogu vijesti.php i citaj.php spojiti u jednu skriptu?
[ Nemanja Avramović @ 31.08.2005. 17:53 ] @
moze, ali ti ne preporucujem to, dzabe komplikujes:
Code:
<?php
error_reporting(0);
$id = $_GET['id'];
if (!$id) {
//ovde iskopiraj kompletan vesti.php (samo bez znakova <?php i ?>)
//eh da, ono sto treba da izmenis je:
//echo "<a href='citaj.php?id=$id'>$title</a> datum:$date<br>\n$kratak_text";
//sa:
//echo "<a href='?id=$id'>$title</a> datum: $date<br>\n$kratak_text";
}
else {
//ovde iskopiraj kompletan citaj.php (samo bez znakova <?php i ?>)
//mozes da izbacis:
//$id = $_GET['id'];
//jer ga imas gore... gore treba da bude
}
?>
ako ne skontas... ma skontaj, nije tesko :D
[Ovu poruku je menjao JaHvram dana 31.08.2005. u 18:59 GMT+1]
[ pvujic @ 31.08.2005. 19:04 ] @
Sve radi kako treba! Puno zahvaljujem JaHvram-u i drugima koji su barem pokusali pomoci. ;)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|