Jump to content
php.lv forumi

Izvadīt datus pēc $date [sākot ar jaunāko-vēcāko]?


raivis

Recommended Posts

!?Izvadīt $date, $user, $msg:

  • 1. alfabēta secībā pēc $user . .
  • 2. tos sagrupējot sākot ar jaunāko un beidzot ar vecāko; pēc $date //date("d.m.Y"); . .

messages.php

$fileData = file("data.txt");
$messageList = array();
foreach ($fileData as $row){
$date = date("d.m.Y");
list($date, $user, $msg) = explode('|', $row);
$messageList[] = array('date' => $date, 'user' => $user, 'msg' => $msg);
}

echo '<h4>Ziņojumi..</h4>';
foreach ($messageList as $key => $message){
echo '<i>'.$message['date'].'</i> <b>'.$message['user'].'</b>: '.$message['msg'] . '<br>---<br>';

}

data.txt

03.12.2004|Jānis|komentārs BLĀ|
01.01.2000|Pēteris|comeon|
24.10.2004|Krista|:?|
19.07.2003|Nora|Chawa!:)|
26.08.2001|Olga|Sveiki..|

Link to comment
Share on other sites

Sakārto pēc usera:

$fileData = file("data.txt");
$messageList = array();
foreach ($fileData as $row){
 $date = date("d.m.Y");
 list($date, $user, $msg) = explode('|', $row);
 $messageList[$user] = array('date' => $date, 'user' => $user, 'msg' => $msg);
}

ksort($messageList);

echo '<h4>Ziņojumi..</h4>';
foreach ($messageList as $key => $message){
 echo '<i>'.$message['date'].'</i> <b>'.$message['user'].'</b>: '.$message['msg'] . '<br>---<br>';
}

Lai sakārtotu pēc datumiem tad šī "$messageList[$user] = array(..." vietā $user vietā ieliec $date (bet vēlams ne stringa formātā bet unix timestampā)

Link to comment
Share on other sites

Paldies bubu!

Bet $user vietā ierakstot $date

$date = date("d.m.Y");

list($date, $user, $msg) = explode('|', $row);

$messageList[$date] = array('date' => $date, 'user' => $user, 'msg' => $msg);

izvada:

Ziņojumi..

01.01.2000 Pēteris: comeon

---

03.11.2004 Juris: komentārs KO!?

---

03.12.2004 Jānis: komentārs BLĀ

---

19.07.2003 Nora: Chawa!:)

---

24.10.2004 Krista: :?

---

26.08.2001 Olga: Sveiki..

---

=> ne gluži pēc datuma formas $date=date("d.m.Y"); !? //skat.piem.Y

Link to comment
Share on other sites

KUR KĻŪDA!?

..

datumu glabā kā time(); varēs viegli sakārtot. Pie datuma izvades izmanto date("d.m.Y", $time_mainiigais)
$fileData = file('data.txt');

$messageList = array();

foreach ($fileData as $row){

//$date = time('d.m.Y', $date);

list($date, $user, $msg) = explode('|', $row);

$messageList[time('d.m.Y', $date)] = array('date' => $date, 'user' => $user, 'msg' => $msg);

}

..izvada tikai 'data.txt' pēdējās rindiņas mainīgo vērtības
Link to comment
Share on other sites

Nr1) Tu kādreiz lasi to kādas kļūdas izvada uz ekrāna?

Nr2) Cik parametri ir funkcijai time? (http://lv.php.net/time/)

Nr3) Tu zini atšķirību starp vārdiem glabā un izvada? (Tev teica glabā laiku timestamp'ā, bet izvadot lieto fju date!! Nevis glabājot datus lieto time() fju)


  • Nr1) Jā, lasu kļūdas, kuras izvada php
  • Nr2) 17?
  • Nr3) Zinu, zinu atšķirību starp glabāt un izvadīt

Bet tomēr, varbūt uzraktīsi tā koda pāris rindiņas!? :blink: Lūdzu!, jo zināms nav pareizi:

.. date("r", time());

$date = date("d.m.Y", $date);

$messageList[$date] = array(..

Link to comment
Share on other sites

Nr1) neizskatās gan, jo

Nr2) time ir 0 parametru, ko tu acīmredzami neesi paskatījies, bet kodā padod 2!

Nr3) Tad kāpēc tā nedari? Tev dots datums formātā d.M.Y, bet vajag unix timestamp, nu tad šķirsti manuāli, kamēr atrodi fju, kurai rakstīts, ka tā veido datumu unix timestamp'ā: strtotime() (http://lv.php.net/manual/en/function.mktime.php). (date fja, ko tu tur mēģini lietot, vispār atgriež laiku stringa formātā, to nepamani?). Nu un kad tagad fu\ja zināma, tad raksti kodu:

 list($d, $m, $y) = explode('.', $date);
 $timestamp = mktime(0, 0, 0, $m, $d, $y);
 $messageList[$timestamp] = array(...);

Link to comment
Share on other sites

Liels paldies bubu! ;)

:) Skripts:

<?php
$fileData = file('data.txt');
$messageList = array();
foreach ($fileData as $row){
list($date, $user, $msg) = explode('|', $row);
list($d, $m, $Y) = explode('.', $date);
$timestamp = mktime(0, 0, 0, $m, $d, $Y);
$messageList[$timestamp] = array('date' => $date, 'user' => $user, 'msg' => $msg);
}

ksort($messageList);

foreach ($messageList as $key => $message){
echo '<i>'.$message['date'].'</i> <b>'.$message['user'].'</b>: '.$message['msg'] . '<br>---<br>';
}
?>

no data.txt:

03.12.2004|Jānis|komentārs BLĀ|
01.01.2000|Pēteris|comeon|
24.10.2004|Krista|:?|
19.07.2003|Nora|Chawa!:)|
26.08.2001|Olga|Sveiki..|
03.11.2004|Juris|komentārs KO!?|

izvada:

01.01.2000 Pēteris: comeon
---
26.08.2001 Olga: Sveiki..
---
19.07.2003 Nora: Chawa!:)
---
24.10.2004 Krista: :?
---
03.11.2004 Juris: komentārs KO!?
---
03.12.2004 Jānis: komentārs BLĀ
---

 

!?Bet, kā būtu: izvadīt $message['date'], $message['user'], $message['msg'] pretējā secībā=> jaunākais-vecākais..

Edited by raivis
Link to comment
Share on other sites

un paņemt manuālī ievadīt ksort (no koda augstāk) un apskatītes saistītās funkcijas?

 

You may modify the behavior of the sort using the optional parameter sort_flags, for details see sort().

 

See also asort(), arsort(), krsort(), uksort(), sort(), natsort(), and rsort().

 

NB: skaisti, parādījies tūlis ūseru reitingošanai

Link to comment
Share on other sites

  • 1 year later...
×
×
  • Create New...