ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Vang
Δημοσιεύσεις: 7
Εγγραφή: 25 Ιαν 2009 21:09
Τοποθεσία: Αθήνα
Επικοινωνία:

ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Δημοσίευση από Vang » 26 Ιαν 2009 01:14

Καλησπέρα σας.
Κατ αρχήν να ζητήσω προκαταβολικά συγνώμη γιατί:

1. Είναι η πρώτη φορά που γράφω.
2. Δεν σκαμπάζω τίποτα από php - απλά "πειράζω" τον κώδικα, πειραματίζομαι, κι όπου βγει.
3. Δεν ξέρω αν εδώ είναι η σωστή σελίδα για να ανεβάσω αυτή την ερώτηση για να μην σας ενοχλήσω. (όπως λέμε τα 3 κακά της μοίρας μου)

Σχεδιάζω, (το σωστότερο είναι photoshop και γράφω τα κείμενα) του site: www.androsinfo.gr
που στην πρώτη του σελίδα, όπως θα δείτε, έχω νέα και ειδήσεις που αφορούν το νησί.

Έτσι, υπάρχει πίσω ένας πίνακας Mysql: news που έχει τα πεδία: id- title - content - date

Στη σελίδα php έχω σήμερα τον πιο κάτω κώδικα, που μου εμφανίζει τις ειδήσεις, στοιχισμένες με βάση την ημερομηνία δημοσίευσης:

Κώδικας: Επιλογή όλων

<? 
$rs = mysql_query&#40;"select * from  news  order by id desc"&#41;or die&#40;"Bad query&#58; ".mysql_error&#40;&#41;&#41;;
$num = mysql_num_rows&#40;$rs&#41;;
$row_rs  = mysql_fetch_assoc&#40;$rs&#41;; 
?>
<? if &#40;$num<>0&#41; &#123; ?>
<? do &#123; ?>
<table width="100%" border="0" cellpadding="4" cellspacing="0" bgcolor="#ffffff">
<tr><td bgcolor="#D6E8FF"><font color="#0000dd"><?php echo  $row_rs&#91;'title'&#93;; ?></font></td></tr>
<tr> <td align="justify"><?php echo  $row_rs&#91;'content'&#93;; ?></td></tr>
<tr><td class="legal"><div align="right">Δημοσίευση&#58; <?php echo  $row_rs&#91;'date'&#93;; ?> </div></td></tr></table>
<? &#125; while &#40;$row_rs = mysql_fetch_assoc&#40;$rs&#41;&#41;; ?>
<? &#125; else &#123; ?>
<? &#125;?>
Θέλησα να κάνω αλλαγές. (που πας ρε καραμήτροοοο)
Να ξεχωρίσω τις ειδήσεις σε 4-5 κατηγορίες και να χρωματίσω κάθε κατηγορία με διαφορετικό τρόπο κρατώντας όμως τη στοίχιση με βάση την ημερομηνία.

Έτσι:
1. πρόσθεσα στον πίνακα το πεδίο: newstype ώστε να ξεχωρίσω τις ειδήσεις σε κατηγορίες. (π.χ. Λοιμοί, σεισμοί, καταποντισμοί κλπ)
2. Έβγαλα τη μορφοποίηση από το table, σε css

Κώδικας: Επιλογή όλων

<? 
$rs = mysql_query&#40;"select * from  news where newstype='1' order by id desc"&#41;or die&#40;"Bad query&#58; ".mysql_error&#40;&#41;&#41;;
$num = mysql_num_rows&#40;$rs&#41;;
$row_rs  = mysql_fetch_assoc&#40;$rs&#41;; 
?>
<? if &#40;$num<>0&#41; &#123; ?>
<? do &#123; ?>
<table width="100%" border="0" cellpadding="4" cellspacing="0" bgcolor="#ffffff">
<tr><td class="anntitleblue"><?php echo  $row_rs&#91;'title'&#93;; ?></font></td></tr>
<tr><td class="anncontentblue"><?php echo  $row_rs&#91;'content'&#93;; ?></td></tr>
<tr><td class="anndateblue">Δημοσίευση&#58; <?php echo  $row_rs&#91;'date'&#93;; ?></td></tr></table>
<? &#125; while &#40;$row_rs = mysql_fetch_assoc&#40;$rs&#41;&#41;; ?>
<? &#125; else &#123; ?>
<? &#125;?>
και έβαλα στο css τη μορφοποίηση όπως π.χ.:

Κώδικας: Επιλογή όλων

.anntitlelblue &#123; background-color&#58;#0080F9; font-size&#58;9pt; color&#58;#FFFFFF; font-family&#58;Verdana, Helvetica, sans-serif; text-align&#58;justify; &#125;
.anncontentlblue &#123; background-color&#58;#EFF4FF; font-size&#58;9pt; color&#58;#000000; font-family&#58;Verdana, Helvetica, sans-serif; text-align&#58;justify; &#125;
.anndatelblue &#123; background-color&#58;#EFF4FF; font-size&#58;8pt; color&#58;#0080F9; font-family&#58;Verdana, Helvetica, sans-serif; text-align&#58;right; &#125;


.anntitlegrey &#123; background-color&#58;#606064; font-size&#58;9pt; color&#58;#FFFFFF; font-family&#58;Verdana, Helvetica, sans-serif; text-align&#58;justify; &#125;
.anncontentgrey &#123; background-color&#58;#F7F7F9; font-size&#58;9pt; color&#58;#000000; font-family&#58;Verdana, Helvetica, sans-serif; text-align&#58;justify; &#125;
.anndategrey &#123; background-color&#58;#F7F7F9; font-size&#58;8pt; color&#58;#999; font-family&#58;Verdana, Helvetica, sans-serif; text-align&#58;right; &#125;


.anntitlered &#123; background-color&#58;#E81000; font-size&#58;9pt; color&#58;#FFFFFF; font-family&#58;Verdana, Helvetica, sans-serif; text-align&#58;justify; &#125;
.anncontentred &#123; background-color&#58;#FFF6F6; font-size&#58;9pt; color&#58;#000000; font-family&#58;Verdana, Helvetica, sans-serif; text-align&#58;justify; &#125;
.anndatered &#123; background-color&#58;#FFF6F6; font-size&#58;8pt; color&#58;#E81000; font-family&#58;Verdana, Helvetica, sans-serif; text-align&#58;right; &#125;
Από εδώ και πέρα... επικρατεί το απόλυτο χάος.
Το μόνο που τόλμησα - σκέφτηκα να κάνω είναι !!!
Να τρέχω το ίδιο script 4-5 φορές στη σειρά και κάθε φορά να αλλάζω το

Κώδικας: Επιλογή όλων

"select * from  news where newstype='1' order by id desc" 
σε 2 - 3 - 4 - 5
αλλά αυτό είναι 1. μπακαλίστικό 2. λάθος γιατί χάνεται η στοίχιση με βάση την ημερομηνία και γίνεται με βάση την κατηγορία, που δε μ αρέσει .

Ζητώ λοιπόν ταπεινά τα φώτα σας και συμπαθάτε με για το μεγάλο post.

Υ.Γ. Προσφέρει κανένας σας ταχύρυθμα μαθήματα για php - Mysql για άσχετους σε καλή τιμή ή με ανταλλαγή μαθημάτων photoshop που γνωρίζω καλά?
«Δεν το ζητάω για μένα αλλά για το φουκαριάρικο το νησάκι μου και το site του... που δεν μπορεί να το απολαύσει...»

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Δημοσίευση από fafos » 26 Ιαν 2009 03:20

File Vang den katalava pos tha emfanizeis tis kathgories... tha einai se ena plaisio h kathe kathgoria ksexorista h tha vgainoun oles xyma kai analoga thn kathgoria tha allazoun xromataki?

symvoulh 1... feiakse tis kathgories se ksexoristo pinaka sthn vash sou..

symvoulh 2... gia na mhn epanalamvaneis ta queries gia kathe kathgoria vazeis olos ton kodika se ena neo arxeio (p.x. nea.php) kai ekei pou thes na ta emfanizeis kaneis include to arxeio me ena get sthn kathgoria.. p.x.:

Κώδικας: Επιλογή όλων

<? include 'nea.php?newstype=1';?>
kai sto query tou nea.php tha exeis auto:

Κώδικας: Επιλογή όλων

$rs = mysql_query&#40;"select * from  news where newstype='$_GET&#91;newstype&#93;' order by id desc"&#41;or die&#40;"Bad query&#58; ".mysql_error&#40;&#41;&#41;; 
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Vang
Δημοσιεύσεις: 7
Εγγραφή: 25 Ιαν 2009 21:09
Τοποθεσία: Αθήνα
Επικοινωνία:

ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Δημοσίευση από Vang » 26 Ιαν 2009 09:30

Σ ευχαριστώ πολύ fafos που ασχολήθηκες με το πρόβλημά μου.

Αυτό που θέλω είναι να είναι χύμα οι ειδήσεις σε στοίχιση με βάση την ημερομηνία (πάνω -πάνω η πιο πρόσφατη) και να χρωματίζονται ανάλογα με την κατηγορία που ανήκουν.

Π.χ. Αν το πεδίο newstype (που είναι η κατηγορία), του πίνακα news, είναι πχ 1 να γίνει εμφάνιση της με το α χρώμα.
αν είναι 2 να γίνει β χρώμα κλπ.

Και θέλω να είναι με τον μικρότερο δυνατό κώδικα - νοικοκυρεμένο.

(Δεν θέλω μόνο να λύσω το πρόβλημά μου,
θέλω όπως εγώ έμαθα αρκετά από τις πολύ σοβαρές απαντήσεις που δίνουν οι φίλοι εδώ να βοηθηθεί και κάποιος άλλος που μας διαβάζει μέσα από τη δική μου ερώτηση και τις δικές σας απαντήσεις και να μάθουμε σωστή γραφή - εφαρμογή του κώδικα)

Τη λύση με τα include την έχω δοκιμάσει αλλά μου εμφανίζει τις ειδήσεις ξεχωρίζοντας τες σε κατηγορίες που δεν το θέλω και το θεωρώ λάθος να τρέχω 4-5 ή 8 φορές το query (ένα για κάθε χρώμα) αν υπάρχει ένας πιο πολιτισμένος τρόπος.


Δες αν δεν σου κάνει κόπο πως είναι τώρα χύμα οι ειδήσεις στο site www.androsinfo.gr στη μέση της πρώτης σελίδας και κάτω.

--------------------------------------------------------------
Προσοχή!! Ο σύλλογος προγραματιστών προειδοποιεί:
Μη περάσετε validation τον κώδικά μου αν έχετε πρόβλημα καρδιάς. Φίλοι μου τώρα μαθαίνω !!!

Άβαταρ μέλους
panos78
Δημοσιεύσεις: 535
Εγγραφή: 15 Φεβ 2003 02:14
Τοποθεσία: Θεσσαλονικη
Επικοινωνία:

ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Δημοσίευση από panos78 » 26 Ιαν 2009 09:48

Δεν χρειάζεται να τρέχει καινούργιο ερώτημα (QUERY) για κάθε χρώμα.
Με δεδομένο ότι έχεις τον κώδικα για τη λήψη των ειδήσεων (λήψη και της κατηγορίας της είδησης σε ξεχωριστό field), όταν θα εμφανίζεται η είδηση με έναν απλό βρόγχο θα επιλέγεται κάθε φορά διαφορετικό χρώμα.
:)
Εν οίδα ότι ουδέν οίδα.
Η Μακεδονία είναι Ελλάδα.
Εικόνα

Vang
Δημοσιεύσεις: 7
Εγγραφή: 25 Ιαν 2009 21:09
Τοποθεσία: Αθήνα
Επικοινωνία:

ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Δημοσίευση από Vang » 26 Ιαν 2009 10:13

ΝΑΙ Πανο μου. (sorry για την οικειότητα)
Αν το έγραφες κιόλας ???

Αυτό ΨΑΧΝΩ αλλά ΔΕΝ ξέρω ο άσχετος (καμία σχέση με το γνωστό site) πώς να το γράψω !!!

Άβαταρ μέλους
panos78
Δημοσιεύσεις: 535
Εγγραφή: 15 Φεβ 2003 02:14
Τοποθεσία: Θεσσαλονικη
Επικοινωνία:

ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Δημοσίευση από panos78 » 26 Ιαν 2009 10:44

Όπως ήδη σου έγγραψα θεωρώ δεδομένο ότι τον κώδικα λήψης των ειδήσεων τον έχεις ήδη.
Τι εννοώ;
Ότι έχεις τον κώδικα που εισάγει μέσα σε ενα πίνακα τις ειδήσεις που θες να εμφανίσεις.
Έχεις τα παρακάτω fields στον πίνακά σου (έστω t_news):
title: Ο τίτλος της είδησης
text: Το κείμενο της είδησης
type: Ο τύπος της είδησης
timestamp: Η ημερομηνία και ώρα δημοσίευσης της είδησης
Μπορείς να βάλεις και ένα field id αν θες να κρατήσεις αρχείο από τις ειδήσεις αλλά προσωπικά το θεωρώ ανούσιο και σίγουρα θα σου βαρύνει τη βάση σου όσο περνάει ο καιρός και γεμίζει.
Με δεδομένα τα παραπάνω γράφουμε τον παρακάτω κώδικά:

Κώδικας: Επιλογή όλων

<?
// Πέρνουμε τα δεδομένα του πίνακα, ταξινομημένα κατά ημερομηνία δημοσίευσης
$sql = mysql_query&#40;"select * from  news  order by timestamp desc"&#41; or die&#40;"Bad query&#58; ".mysql_error&#40;&#41;&#41;;
// Για τη μετατροπή του τύπου της είδησης σε χρώμα, δημιουργείς ένα array με τους τύπους των ειδήσεων και τα χρώματα που θες να αντιστοιχήσεις.
$colors = array&#40;
'Οικονομικά' => 'blue',
'Αθλητικά' => 'yellow',
'Πολιτκή' => 'red',
'Γενικά' => 'black'
&#41;;
// Με τον βρόγχο while εμφανίζουμε τη μια είδηση κάτω από την άλλη &#40;την μορφοποίηση διάλεξέ τη εσύ&#41;
while&#40;$row = mysql_fetch_array&#40;$sql&#41;&#41;
&#123;
echo '<p style="color&#58;'.$colors&#91;$row&#91;'type'&#93;&#93;.'">'.$row&#91;'title'&#93;.'<br>'.$row&#91;'text'&#93;;
&#125;
?>
;)
Εν οίδα ότι ουδέν οίδα.
Η Μακεδονία είναι Ελλάδα.
Εικόνα

Άβαταρ μέλους
panos78
Δημοσιεύσεις: 535
Εγγραφή: 15 Φεβ 2003 02:14
Τοποθεσία: Θεσσαλονικη
Επικοινωνία:

ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Δημοσίευση από panos78 » 26 Ιαν 2009 11:51

Σε περίπτωση που δεν έχεις κώδικά για να παίρνεις τα δεδομένα από rss δοκίμασε αυτόν:

Κώδικας: Επιλογή όλων

class RSS
&#123;
	var $CHANNELS		= array&#40;&#41;;	// Array, holds individual channel data
	var $CHANNELINFO	= array&#40;&#41;;	// Array that holds NON-ITEM channel data
	var $COUNT			= 0;		// Number of channels found
	function RSS &#40; $data = "", $simple = 0&#41;
	&#123;
		if&#40;$simple&#41;
		&#123;
			$temp = array&#40;&#41;;
			$temp&#91;0&#93;&#91;0&#93; = $data;
			$this->COUNT = 1;
			$this->parseItems&#40;$temp&#41;;
		&#125;
		else
		&#123;
			$this->assignDATA&#40;$data&#41;;
		&#125;
	&#125;
	function error &#40;$msg=""&#41;
	&#123;
		print "<H3>Error&#58; &#91;$msg&#93;</H3>\r\n";
		return;
	&#125;
	function getCount &#40;&#41;
	&#123;
		return $this->COUNT;
	&#125;
	function getChannel&#40;$channelID&#41;
	&#123;
		return $this->CHANNELS&#91;$channelID&#93;;
	&#125;
	function getChannelInfo&#40;$channelID&#41;
	&#123;
		return $this->CHANNELINFO&#91;$channelID&#93;;
	&#125;
	function itemCount&#40;$channelID&#41;
	&#123;
		return count&#40;$this->CHANNELS&#91;$channelID&#93;&#91;'ITEMS'&#93;&#41;;
	&#125;
	function getItems&#40;$channelID&#41;
	&#123;
		return $this->CHANNELS&#91;$channelID&#93;&#91;'ITEMS'&#93;;
	&#125;
	function getAllItems &#40;&#41;
	&#123;
		$count = $this->getCount&#40;&#41;;
		$ticker=0;
		$allItems = array&#40;&#41;;
		for &#40;$x=0;$x<$count;$x++&#41;
		&#123;
			$itemCount = $this->itemCount&#40;$x&#41;;
			$itemData = $this->getItems&#40;$x&#41;;
			for&#40;$y=0;$y<$itemCount;$y++&#41;
			&#123;
				$allItems&#91;$ticker&#93;&#91;'TITLE'&#93; = $itemData&#91;$y&#93;&#91;'TITLE'&#93;;
				$allItems&#91;$ticker&#93;&#91;'LINK'&#93; = $itemData&#91;$y&#93;&#91;'LINK'&#93;;
				$allItems&#91;$ticker&#93;&#91;'DESCRIPTION'&#93; = $itemData&#91;$y&#93;&#91;'DESCRIPTION'&#93;;
				$ticker++;
			&#125;
		&#125;
		return $allItems;
	&#125;
	function assignDATA &#40;$data=""&#41;
	&#123;
		if &#40;empty&#40;$data&#41;&#41;
		&#123;
			$this->error&#40;"No RSS data submitted"&#41;;
		&#125;
		else
		&#123;
			$this->parse&#40;$data&#41;;
		&#125;
		return;
	&#125;
	function parseChannels&#40;$data=""&#41;
	&#123;
		$channelCount = preg_match_all&#40;"|<channel>&#40;.*&#41;</channel>|iUs",$data,$channels,PREG_SET_ORDER&#41;;
		if&#40;!$channelCount&#41;
		&#123;
			$this->error&#40;"No channels in RSS data"&#41;;
			return;
		&#125;
		else
		&#123;
			$this->COUNT = $channelCount;
		&#125;
		return $channels;
	&#125;
	function storeItems&#40;$itemData="",$channelID,$itemID&#41;
	&#123;
		global $lg;
		if&#40;preg_match_all&#40;"|<title>&#40;.+&#41;</title>|iUs",$itemData,$match,PREG_SET_ORDER&#41;&#41;
		&#123;
			$title = $match&#91;0&#93;&#91;1&#93;;
			$this->CHANNELS&#91;$channelID&#93;&#91;'ITEMS'&#93;&#91;$itemID&#93;&#91;'TITLE'&#93; = "$title";
		&#125;
		else
		&#123;
			$this->CHANNELS&#91;$channelID&#93;&#91;'ITEMS'&#93;&#91;$itemID&#93;&#91;'TITLE'&#93; = "";
		&#125;
		if&#40;preg_match_all&#40;"|<link>&#40;.+&#41;</link>|iUs",$itemData,$match,PREG_SET_ORDER&#41;&#41;
		&#123;
			$link = $match&#91;0&#93;&#91;1&#93;;
			$this->CHANNELS&#91;$channelID&#93;&#91;'ITEMS'&#93;&#91;$itemID&#93;&#91;'LINK'&#93; = "$link";
		&#125;
		else
		&#123;
			$this->CHANNELS&#91;$channelID&#93;&#91;'ITEMS'&#93;&#91;$itemID&#93;&#91;'LINK'&#93; = "";
		&#125;
		if&#40;preg_match_all&#40;"|<category>&#40;.+&#41;</category>|iUs",$itemData,$match,PREG_SET_ORDER&#41;&#41;
		&#123;
			$desc = $match&#91;0&#93;&#91;1&#93;;
			$this->CHANNELS&#91;$channelID&#93;&#91;'ITEMS'&#93;&#91;$itemID&#93;&#91;'DESCRIPTION'&#93; = "$desc";
		&#125;
		else
		&#123;
			$this->CHANNELS&#91;$channelID&#93;&#91;'ITEMS'&#93;&#91;$itemID&#93;&#91;'DESCRIPTION'&#93; = "";
		&#125;
		if&#40;preg_match_all&#40;"|<pubDate>&#40;.+&#41;</pubDate>|iUs",$itemData,$match,PREG_SET_ORDER&#41;&#41;
		&#123;
			$desc = '\r\n'.$match&#91;0&#93;&#91;1&#93;;
			$this->CHANNELS&#91;$channelID&#93;&#91;'ITEMS'&#93;&#91;$itemID&#93;&#91;'DESCRIPTION'&#93; .= "$desc";
		&#125;
		else
		&#123;
			$this->CHANNELS&#91;$channelID&#93;&#91;'ITEMS'&#93;&#91;$itemID&#93;&#91;'DESCRIPTION'&#93; .= "";
		&#125;
		return;
	&#125;
	function storeChannelData&#40;$data="",$channelID&#41;
	&#123;
		$data = str_replace&#40;'<channel>','',$data&#41;;
		$data = str_replace&#40;'</channel>','',$data&#41;;
		$lines = split&#40;"\n",$data&#41;;
		while &#40; list &#40; $key, $line &#41; = each &#40;$lines&#41; &#41;
		&#123;
			$line = trim&#40;$line&#41;;
			if&#40;!empty&#40;$line&#41;&#41;
			&#123;
				if&#40;preg_match&#40;"|<&#40;&#91;^>&#93;+&#41;>&#40;.*&#41;</\\1>|U",$line,$matches&#41;&#41;
				&#123;
					$tagName = $matches&#91;1&#93;;
					$tagVal  = $matches&#91;2&#93;;
					$this->CHANNELS&#91;$channelID&#93;&#91;$tagName&#93; = $tagVal;
					$this->CHANNELINFO&#91;$channelID&#93;&#91;$tagName&#93; = $tagVal;
				&#125;
			&#125;
		&#125;
		return;
	&#125;
	function parseItems&#40;$channels&#41;
	&#123;
		$channelCount = count&#40;$channels&#41;;
		if&#40;!$channelCount&#41;
		&#123;
			$this->error&#40;"Could not locate any channel data to parse"&#41;;
			exit;
		&#125;
		for&#40;$x=0;$x<$channelCount;$x++&#41;
		&#123;
			$channelData = $channels&#91;$x&#93;&#91;0&#93;;
			$leftOvers = $channelData;
			$itemCount = preg_match_all&#40;"|<item>&#40;.*&#41;</item>|iUs",$channelData,$items,PREG_SET_ORDER&#41;;
			if&#40;$itemCount&#41;
			&#123;
				for&#40;$y=0;$y<$itemCount;$y++&#41;
				&#123;
					$itemData = $items&#91;$y&#93;&#91;0&#93;;
					$leftOvers = str_replace&#40;"$itemData","",$leftOvers&#41;;
					$this->storeItems&#40;$itemData,$x,$y&#41;;
				&#125;
			&#125;
			$this->storeChannelData&#40;$leftOvers,$x&#41;;
		&#125;
		return;
	&#125;
	function parse&#40;$data=""&#41;
	&#123;
		$channels = $this->parseChannels&#40;$data&#41;;
		if&#40;empty&#40;$channels&#41;&#41; &#123; return; &#125;
		$this->parseItems&#40;$channels&#41;;
		return;
	&#125;
&#125;
;)
Εν οίδα ότι ουδέν οίδα.
Η Μακεδονία είναι Ελλάδα.
Εικόνα

Vang
Δημοσιεύσεις: 7
Εγγραφή: 25 Ιαν 2009 21:09
Τοποθεσία: Αθήνα
Επικοινωνία:

ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Δημοσίευση από Vang » 26 Ιαν 2009 12:48

Σε ευχαριστώ ΠΟΛΥ για την άμεση ανταπόκριση.


Με την ευκαιρία, οι ειδήσεις είναι δικές μου (αφορούν κυρίως εκδηλώσεις, δράσεις και εκθέσεις του νησιού) οπότε δεν θα χρειαστώ το ωραίο news feed που μου έστειλές.

Σχετικά με το array τώρα.

Δεν θέλω απλά ο τίτλος και το κείμενο της κάθε είδησης να είναι με κάποιο χρώμα ανάλογο με τον τύπο της είδησης (σχεδιαστικά θα ήταν πανηγύρι).

Όπως θα δεις πιο πάνω, εγώ είχα ένα table για κάθε είδηση με τον οποίο έδινα τη μορφοποίηση του:

Κώδικας: Επιλογή όλων

<table width="100%" border="0" cellpadding="4" cellspacing="0" bgcolor="#ffffff">
<tr><td class="anntitleblue"><?php echo  $row_rs&#91;'title'&#93;; ?></font></td></tr>
<tr><td class="anncontentblue"><?php echo  $row_rs&#91;'content'&#93;; ?></td></tr>
<tr><td class="anndateblue">Δημοσίευση&#58; <?php echo  $row_rs&#91;'date'&#93;; ?></td></tr></table> 
και ένα css apo όπου τράβαγε τα class

π.χ. για blue το css περιείχε:

Κώδικας: Επιλογή όλων

.anntitlelblue &#123;
   background-color&#58;#0080F9;
   font-size&#58;9pt;
   color&#58;#FFFFFF;
   font-family&#58;Verdana, Helvetica, sans-serif;
   text-align&#58;justify;
&#125;

.anncontentlblue &#123;
   background-color&#58;#EFF4FF;
   font-size&#58;9pt;
   color&#58;#000000;
   font-family&#58;Verdana, Helvetica, sans-serif;
   text-align&#58;justify;
&#125;

.anndatelblue &#123;
   background-color&#58;#EFF4FF; 
   font-size&#58;8pt; color&#58;#0080F9;
   font-family&#58;Verdana, Helvetica, sans-serif;
   text-align&#58;right;
&#125; 
αντίστοιχα για τους συνδυασμούς των υπόλοιπων 4-5 συνδυασμών χρωμάτων.


ΕΡΩΤΗΣΕΙΣ

1. Πώς θα κάνω με την χρήση Arrays που προτείνεις την τελική επιλογή χρώματος του πίνακα που εμφανίζεται ?
2. Αξίζει που έχω τη μορφοποίηση γι αυτή τη σελίδα σε css ή να τα φέρω μέσα στην php ?


Συγνώμη για το θάρρος - θράσος και ελπίζω να μην καταχρώμαι της καλοσύνης σου.

Vang
Δημοσιεύσεις: 7
Εγγραφή: 25 Ιαν 2009 21:09
Τοποθεσία: Αθήνα
Επικοινωνία:

ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Δημοσίευση από Vang » 26 Ιαν 2009 12:59

sorry διπλή καταχώρηση

Άβαταρ μέλους
panos78
Δημοσιεύσεις: 535
Εγγραφή: 15 Φεβ 2003 02:14
Τοποθεσία: Θεσσαλονικη
Επικοινωνία:

ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Δημοσίευση από panos78 » 26 Ιαν 2009 13:05

Όσο αφορά την πρώτη σου ερώτηση, αποψή μου είναι ότι καλό ΌΛΕΣ σου τις μορφοποιήσεις να τις έχεις ομαδοποιημένες σε css.
Σε εμένα τουλάχιστον είναι πιο εύχρηστο.
Σχετικά με τη δεύτερη ερώτησή σου θα σου πρότεινα τον εξής κώδικα:

Κώδικας: Επιλογή όλων

<table width="100%" border="0" cellpadding="4" cellspacing="0" bgcolor="#ffffff">
<?
while&#40;$row_rs = mysql_fetch_array&#40;$rs&#41;&#41;
&#123;
echo '<tr><td class="anntitle'.$colors&#91;$row_rs&#91;'type'&#93;&#93;.'">'.$row_rs&#91;'title'&#93;.'</td></tr>
<tr><td class="anncontent'.$colors&#91;$row_rs&#91;'type'&#93;&#93;.'">'.$row_rs&#91;'content'&#93;.'</td></tr>
<tr><td class="anndate'.$colors&#91;$row_rs&#91;'type'&#93;&#93;.'">'.$row_rs&#91;'date'&#93;.'</td></tr>';
&#125;
?>
</table> 
Εν οίδα ότι ουδέν οίδα.
Η Μακεδονία είναι Ελλάδα.
Εικόνα

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Δημοσίευση από Basilakis » 26 Ιαν 2009 13:19

@panos78

Το url της σελίδας που θέλεις να διαβάζεις που το ορίζεις στην RSS class Σου;

Άβαταρ μέλους
panos78
Δημοσιεύσεις: 535
Εγγραφή: 15 Φεβ 2003 02:14
Τοποθεσία: Θεσσαλονικη
Επικοινωνία:

ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Δημοσίευση από panos78 » 26 Ιαν 2009 13:29

@Basilakis
Παράδειγμα για τα νέα της ΕΡΤ (ελληνικά αν η μεταβλητή $lg είναι el και αγγλικά για οποιαδήποτε άλλη τιμή):

Κώδικας: Επιλογή όλων

<?
$rsssite = 'http&#58;//news.ert.gr/'.&#40;$lg=='el' ? 'xml/rss/rss_latestnews.xml' &#58; 'en/xmlservice.asp'&#41;;
if&#40;@fopen&#40;$rsssite,'r'&#41;&#41;
&#123;
	$data = implode&#40;'',file&#40;$rsssite&#41;&#41;;
	mysql_query&#40;"DELETE FROM t_worldnews".&#40;$lg=='el' ? '_el' &#58; ''&#41;&#41;;
	$rss = new RSS&#40;$data&#41;;
	$allItems = $rss->getAllItems&#40;&#41;;
	$itemCount = count&#40;$allItems&#41;;
	for&#40;$y=0;$y<$itemCount;$y++&#41;
	&#123;	
		$title = $allItems&#91;$y&#93;&#91;'TITLE'&#93;;
		$source = $allItems&#91;$y&#93;&#91;'DESCRIPTION'&#93;;
		$sindesmos = $allItems&#91;$y&#93;&#91;'LINK'&#93;;
//		$title = iconv&#40;'WINDOWS-1253','UTF-8',$title&#41;;
//		$source = iconv&#40;'WINDOWS-1253','UTF-8',$source&#41;;
//		$sindesmos = iconv&#40;'WINDOWS-1253','UTF-8',$sindesmos&#41;;
		if &#40;strpos&#40;$source, 'Turk'&#41; === false && strpos&#40;$source, 'Anadolu'&#41; === false && strpos&#40;$title, 'Turk'&#41; === false&#41;
		&#123;										
			$sql_string = 'INSERT INTO t_worldnews'.&#40;$lg=='el' ? '_el' &#58; ''&#41;.' SET id = '.$laufende_nummer.', title = "'.$title.'", source = "'.$source.'", link = "'.$sindesmos.'"';
			$my_statement_2 = mysql_query&#40;$sql_string&#41;;
			$laufende_nummer++;
		&#125;
		else
		&#123;
			continue;
		&#125;
	&#125;
&#125;
?>
;)
Εν οίδα ότι ουδέν οίδα.
Η Μακεδονία είναι Ελλάδα.
Εικόνα

Vang
Δημοσιεύσεις: 7
Εγγραφή: 25 Ιαν 2009 21:09
Τοποθεσία: Αθήνα
Επικοινωνία:

ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Δημοσίευση από Vang » 26 Ιαν 2009 13:30

Για να βοηθήσω και τους υπόλοιπους να καταλάβουν δείτε το δείγμα του τι θελω να φτιάξω εδω.

http://androsinfo.gr/test.php

Πιστεύω οτι θα γίνει ξεκάθαρο και πιθανόν να βοηθήσει και άλλους χρήστες του φόρουμ που μας διαβάζουν

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Δημοσίευση από fafos » 26 Ιαν 2009 14:41

Vang έγραψε:Για να βοηθήσω και τους υπόλοιπους να καταλάβουν δείτε το δείγμα του τι θελω να φτιάξω εδω.

http://androsinfo.gr/test.php

Πιστεύω οτι θα γίνει ξεκάθαρο και πιθανόν να βοηθήσει και άλλους χρήστες του φόρουμ που μας διαβάζουν
kratas to proto query ( xoris to where newstype='1') kai meta to while dineis if gia kathe kathgoria..p.x.

Κώδικας: Επιλογή όλων

if&#40;newstype=='1'&#41; &#123; $style = 'blue';&#125; elseif&#40;newstype=='2'&#41; &#123; $style = 'grey';&#125; klp klp
katopin sto style ton tables - tds kaleis to $style:

Κώδικας: Επιλογή όλων

<tr><td class="anntitle<?=$style;?>"><?php echo  $row_rs&#91;'title'&#93;; ?></font></td></tr>
<tr><td class="anncontent<?=$style;?>"><?php echo  $row_rs&#91;'content'&#93;; ?></td></tr>
<tr><td class="anndate<?=$style;?>">Δημοσίευση&#58; <?php echo  $row_rs&#91;'date'&#93;; ?></td></tr></table> 

ta pragmata tha htan poio eukola an eixes tis kathgories se diko tous pinaka kai ekei mesa na kataxoreis kai to xroma se ena field, giati an prostheteis nea kathgoria tha prepei na allazeis kai auta ta if-elseif... p.x.

pinakas categories,
id,
name,
color
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

ΚΩΔΙΚΑΣ php ΓΙΑ ΕΙΔΗΣΕΙΣ ΑΠΟ ΠΙΝΑΚΑ Mysql ΜΕ css

Δημοσίευση από Basilakis » 26 Ιαν 2009 16:18

@panos

Poli endiaferwn o kwdikas sou! Psifizw na mas kaneis ena kalo voithima na to exoume san archive!

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες