print με σειρά ημερομηνίας

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

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

Απάντηση
abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

print με σειρά ημερομηνίας

Δημοσίευση από abeautifulmind » 13 Φεβ 2011 18:16

Καλησπέρα παιδιά έχω αυτόν τον κώδικα

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

<?php
				  session_start&#40;&#41;;
  include "connect.php"; //mysql db connection here
$username = mysql_fetch_array&#40;mysql_query&#40;"SELECT user_online FROM users_online WHERE user_online != '" . $_SESSION&#91;'username'&#93; . "'"&#41;&#41;;
$username = $_SESSION&#91;'username'&#93;;
mysql_query&#40;"DELETE FROM messages WHERE date < " . &#40;time&#40;&#41; - 1800&#41;&#41;;
$result = mysql_query&#40;"&#40;SELECT * FROM messages WHERE messagefrom = '" . $_GET&#91;'from'&#93; . "' and sendto = '" . $username . "' ORDER BY date ASC LIMIT 0, 10&#41; UNION &#40;SELECT * FROM messages WHERE messagefrom = '" . $username . "' and sendto = '" . $_GET&#91;'from'&#93; . "' ORDER BY date ASC LIMIT 0, 10&#41;"&#41; or die&#40;mysql_error&#40;&#41;&#41;;
while&#40;$row = mysql_fetch_array&#40;$result&#41;&#41;&#123;
if&#40;$row&#91;'messagefrom'&#93; == $username&#41;&#123;
$by = 'Εγώ';
&#125;
else&#123;
$by = $_GET&#91;'from'&#93;;
&#125;
echo '<div class="message"><strong>' . $by . '</strong><img src=\'css/images/bullet.gif\' alt=\'-\' /><font color="blue"> ' . $row&#91;'message'&#93; . '</font><br><span class="messdate">' . date&#40;'g&#58;i A M, d Y',$row&#91;'date'&#93;&#41; . '</span></div>';
&#125;
?>

ο οποίος μου τυπώνει τα μηνύματα από έναν πίνακα. Το προβλημμα είναι ότι τυπώνει τα μυνήματα με σειρά ημερομηνίας αλλά κατά χρήστη και όχι όλα μαζί δηλαδή τα τυπώνει έτσι
manos-> τι κάνεις?
3:50 PM Feb, 13 2011
manos-> θα έρθεις?
3:55 PM Feb, 13 2011
Εγώ-> καλά
3:51 PM Feb, 13 2011
Εγώ-> ναι
3:56 PM Feb, 13 2011
πως μπορώ να το κάνω να τα τυπώνει έτσι?
manos-> τι κάνεις?
3:50 PM Feb, 13 2011
Εγώ-> καλά
3:51 PM Feb, 13 2011
manos-> θα έρθεις?
3:55 PM Feb, 13 2011
Εγώ-> ναι
3:56 PM Feb, 13 2011

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

print με σειρά ημερομηνίας

Δημοσίευση από dva_dev » 13 Φεβ 2011 19:45

Κάνε το query σου

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

SELECT * FROM messages WHERE
&#40;messagefrom = 'userA' and sendto = 'userB'&#41; OR
&#40;messagefrom = 'userB' and sendto = 'userA'&#41; ORDER BY date ASC LIMIT 0, 10
όπου userA, userB βάζεις τις μεταβλητές σου.

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

print με σειρά ημερομηνίας

Δημοσίευση από pimpogio » 13 Φεβ 2011 19:59

επισης μην εκτυπωνεις html κωδικα μεσα απο την php
γιατι δεν διαβαζετε

κανε αυτο

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

$by = $_GET&#91;'from'&#93;;
&#125;
echo '<div class="message"><strong>' . $by . '</strong><img src=\'css/images/bullet.gif\' alt=\'-\' /><font color="blue"> ' . $row&#91;'message'&#93; . '</font><br><span class="messdate">' . date&#40;'g&#58;i A M, d Y',$row&#91;'date'&#93;&#41; . '</span></div>';
&#125;
?>
se

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

$by = isset&#40;$_GET&#91;'from'&#93;&#41; ? $_GET&#91;'from'&#93; &#58; "unknown";
&#125;?>
<div class="message"><strong> <?php echo $by; ?></strong><img src="css/images/bullet.gif" alt="" /><font color="blue"> <?php echo $row&#91;'message'&#93;; ?>
</font><br><span class="messdate"> <?php echo date&#40;'g&#58;i A M, d Y',$row&#91;'date'&#93;&#41;;?> </span></div>
<?php &#125; ?>
και παρατα τις mysql* functions.. να χρησιμοποιεις PDO

abeautifulmind
Δημοσιεύσεις: 319
Εγγραφή: 02 Μάιος 2010 18:04

print με σειρά ημερομηνίας

Δημοσίευση από abeautifulmind » 13 Φεβ 2011 20:13

dva_dev ευχαριστώ πολύ δούλεψε είσαι πρώτος man :D
Μία ερωτησούλα ακόμα θέλω τα μηνύματα να τα τυπώνει το νεότερο από πάνω όχι από κάτω αν βάλω αντί για ASC LIMIT το DESC LIMIT θα κάνει δουλείά? γιατί μου βγάζει error.
pimpogio ευχαριστώ δουλέυει και έτσι αλλά αν θέλεις να μου πεις την διαφορά γιατί δεν βλέπω κάτι προφανώς γιατί δεν ξέρω και τι είναι το PDO sorry :oops:

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

print με σειρά ημερομηνίας

Δημοσίευση από dva_dev » 13 Φεβ 2011 20:48

Στην sql το order by ορίζει με ποια πεδία θα γίνει η ταξινόμηση και αν θα είναι αύξουσα ή φθίνουσα στο καθένα από αυτά.
Οπότε αλλάζοντας το ORDER BY date ASC σε ORDER BY date DESC θα φέρει τις εγγραφές που θέλεις από την πιο πρόσφατη στην παλαιότερη.

Απάντηση

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

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

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