Αναζήτηση σε php με κριτήριο την ημερομηνία...?

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

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

saholias
Δημοσιεύσεις: 17
Εγγραφή: 12 Νοέμ 2009 02:32

Αναζήτηση σε php με κριτήριο την ημερομηνία...?

Δημοσίευση από saholias » 01 Δεκ 2009 19:39

[table]

an epimeneis se ena pedio kai orizeis na sou dinoun oposdhpote hmeromhnia morfhs 12/11/2009 to kaneis etsi:

κώδικας:

$hmeromhnia = explode('/', $_POST[d1]);
$d1 = mktime(0, 0, 0, $hmeromhnia[1], $hmeromhnia[0], $hmeromhnia[2]);


to idio kaneis kai gia to d2...

[/table]

Το δοκίμασα αλλά δεν είχα αποτελέσματα... Το πεδίο d_aimod είναι πλεον timestamp αλλά πάντα εμφανίζεται αποτέλεσμα 0!!!! Τι κάνω λάθος? :reading: :reading: :reading:

Και όπου και ψάξω αυτό προτείνουν....


Να και τι έχω ως τώρα!

[table]

form method="post" action="search_date.php">
<div align="center"><strong><em>Αναζήτηση συνολικής ποσότητας αίματος βάση ημερομηνίας αιμοδοσίας: </em></strong><br>

<strong>Από</strong>
<input type="text" name="d1" size=20 maxlength=255>
<strong>Μέχρι</strong>
<input type="text" name="d2" size=20 maxlength=255> <br>
<input type="Submit" name="Submit" value="Αναζήτηση" STYLE="color: blue;">
</div>
</form>

[/table]

και το search_date.php

[table]

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=greek" />
<title>Φόρμα αναζήτησης</title>
</head>


<body>
<?php



$d1 = $_POST['d1'];
$d2 = $_POST['d2'];



include_once("conn.php");

mysql_select_db("blood2");
mysql_query("set character_set_client=greek");
mysql_query("set character_set_connection=greek");
mysql_query("set collation_connection=greek");
mysql_query("set character_set_results=greek");


$dateArr1 = explode("/",$d1);
$date1Int = mktime(0,0,0,$dateArr1[1],$dateArr1[2],$dateArr1[0]) ;

$dateArr2 = explode("/",$d2);
$date2Int = mktime(0,0,0,$dateArr2[1],$dateArr2[2],$dateArr2[0]) ;

$query = "SELECT b_ammount FROM fiales WHERE d_aimod >=".$date1Int." AND d_aimod<".$date2Int."";

$result = mysql_query($query) ;

$totalAmount = 0;
while($row=mysql_fetch_assoc($result))
{
$totalAmount = $totalAmount + $row['b_ammount'];
}
echo "$totalAmount";

?>
<br>
<br>

<div align="center">

<A HREF="http://localhost/blood/search_form.php"
onMouseOver="window.status='Click here to go to HTML Goodies'; return true">Επιστροφή στην προηγούμενη σελίδα!</A>

</body>
</html>

[/table]

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

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


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

Αναζήτηση σε php με κριτήριο την ημερομηνία...?

Δημοσίευση από fafos » 01 Δεκ 2009 20:01

to array pou prokyptei apo to explode otan doseis hmeromhnia morfhs hmera/mhnas/etos:


hmera= $arr[0]
mhnas = $arr[1]
etos= $arr[2]

h mktime thelei authn thn seira: 0,0,0, MHNAS, HMERA, ETOS

des ti exeis kanei esy kai diorthose ta..

epishs.. sto d2 an thes na koitaei mexri to telos ths hmeras prepei na kaneis tis ores sthn mktime kapos etsi:

23,59,59, MHNAS, HMERA, ETOS
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

saholias
Δημοσιεύσεις: 17
Εγγραφή: 12 Νοέμ 2009 02:32

Αναζήτηση σε php με κριτήριο την ημερομηνία...?

Δημοσίευση από saholias » 01 Δεκ 2009 20:19

Δεν χρησιμοποιω ώρες οπότε ¨θεωρώ¨ δεν θα έχω τέτοιο πρόβλημα το πολύ πολύ να βάλω ένα ακόμα = στο :

$query = "SELECT b_ammount FROM fiales WHERE d_aimod >=".$date1Int." AND d_aimod<=".$date2Int."";

αν καταλαβα καλά το άλλαξα σε

$dateArr1 = explode("/",$d1);
$date1Int = mktime(0,0,0,$dateArr1[1],$dateArr1[2],$dateArr1[0]) ;

$dateArr2 = explode("/",$d2);
$date2Int = mktime(0,0,0,$dateArr2[1],$dateArr2[2],$dateArr2[0]) ;

επειδή είναι τελικά 2009/12/30 η μορφή. αλλά fafo πάλι αποτέλεσμα 0 μου δίνει... λες να εχω κάνει αλλου χαζομάρα?

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

Αναζήτηση σε php με κριτήριο την ημερομηνία...?

Δημοσίευση από fafos » 01 Δεκ 2009 22:19

kane ena echo $query; kato apo to query kai des ti times pairnei stis hmeromhnies..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

saholias
Δημοσιεύσεις: 17
Εγγραφή: 12 Νοέμ 2009 02:32

Αναζήτηση σε php με κριτήριο την ημερομηνία...?

Δημοσίευση από saholias » 02 Δεκ 2009 04:04

Για να δεις που έβαλα και πώς τα echo!!!!!!!

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

 $dateArr1  = explode&#40;"/",$d1&#41;;
 $date1Int = mktime&#40;0,0,0,$dateArr1&#91;1&#93;,$dateArr1&#91;2&#93;,$dateArr1&#91;0&#93;&#41; ;
echo "$date1Int";
 $dateArr2  = explode&#40;"/",$d2&#41;;
 $date2Int = mktime&#40;0,0,0,$dateArr2&#91;1&#93;,$dateArr2&#91;2&#93;,$dateArr2&#91;0&#93;&#41; ;
echo"$date2Int";

$query = "SELECT b_ammount FROM fiales WHERE d_aimod >=".$date1Int." AND d_aimod<".$date2Int."";
 echo "$query";
$result = mysql_query&#40;$query&#41; ;

$totalAmount = 0;
while&#40;$row=mysql_fetch_assoc&#40;$result&#41;&#41;
  &#123;
    $totalAmount = $totalAmount + $row&#91;'b_ammount'&#93;;
  &#125;
echo "$totalAmount";
 
Δεν δείχνει ΤΙΠΟΤΑ!!!! Μόνο 0 εμφανίζει που είναι το echo "$totalAmount"; , $totalAmount = 0...

?????????????????????????????????????

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

Αναζήτηση σε php με κριτήριο την ημερομηνία...?

Δημοσίευση από fafos » 02 Δεκ 2009 13:39

apoti vlepo den polygoustareis ta mona quotes... kane to select etsi:

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

$query = "SELECT b_ammount FROM fiales WHERE d_aimod BETWEEN '$date1Int' AND '$date2Int' "; 
kai apo kato grapse: echo $query;

meta des ti times pairnoun ta '$date1Int' AND '$date2Int'
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

saholias
Δημοσιεύσεις: 17
Εγγραφή: 12 Νοέμ 2009 02:32

Αναζήτηση σε php με κριτήριο την ημερομηνία...?

Δημοσίευση από saholias » 07 Δεκ 2009 18:24

λοιπόν, άργησα να απαντήσω διότι έπερπε να δείξω την πρόοδο στην καθηγήτρια...

έχουμε τον παρακάτω κώδικα:

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

 
$d1 = $_POST&#91;'d1'&#93;;
echo "$d1";

$d2 = $_POST&#91;'d2'&#93;;
echo "$d2";

include_once&#40;"conn.php"&#41;;

mysql_select_db&#40;"blood2"&#41;; 
mysql_query&#40;"set character_set_client=greek"&#41;;
mysql_query&#40;"set character_set_connection=greek"&#41;;
mysql_query&#40;"set collation_connection=greek"&#41;;
mysql_query&#40;"set character_set_results=greek"&#41;;


 $dateArr1  = explode&#40;"/",$d1&#41;;
 $date1Int = mktime&#40;0,0,0,$dateArr1&#91;1&#93;,$dateArr1&#91;2&#93;,$dateArr1&#91;0&#93;&#41; ;
echo "$date1Int"; 
 $dateArr2  = explode&#40;"/",$d2&#41;;
 $date2Int = mktime&#40;0,0,0,$dateArr2&#91;1&#93;,$dateArr2&#91;2&#93;,$dateArr2&#91;0&#93;&#41; ;
echo"$date2Int";
 
$query = "SELECT b_ammount FROM fiales WHERE d_aimod BETWEEN '$date1Int' AND '$date2Int' ";

echo "$query";
$result = mysql_query&#40;$query&#41; ;

$totalAmount = 0;
while&#40;$row=mysql_fetch_assoc&#40;$result&#41;&#41;
  &#123;
    $totalAmount = $totalAmount + $row&#91;'b_ammount'&#93;;
  &#125;
echo "$totalAmount";
 
?>
<br>
<br>

<div align="center">

<A HREF="http&#58;//localhost/blood/search_form.php"
onMouseOver="window.status='Click here to go to HTML Goodies'; return true">Επιστροφή στην προηγούμενη σελίδα!</A>

</body>
</html>

και σαν αποτέλεσμα εμφανίζεται...


2007/07/012009/12/22 11832480001261440000SELECT b_ammount FROM fiales WHERE d_aimod BETWEEN '1183248000' AND '1261440000' 0



στο τέλος πάλι μηδέν....

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Αναζήτηση σε php με κριτήριο την ημερομηνία...?

Δημοσίευση από vassilism » 07 Δεκ 2009 19:52

Δεν ξέρω αν έχεις καταλάβει ανάμεσα σε τι ψάχνεις?
Εσύ του λες:
Εμφάνισέ μου αυτά που είναι ανάμεσα σε αυτό 1183248000 και αυτό 1261440000.
Αυτοί οι αριθμοί προκύπτουν από την $date1Int που βάζεις την mktime() ενώ στην βάση σου οι ημερομηνίες είναι της μορφής xxxx/xx/xx.

Επίσης την $totalAmount γιατί την εμφανίζεις έξω από τη while?

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

Αναζήτηση σε php με κριτήριο την ημερομηνία...?

Δημοσίευση από fafos » 07 Δεκ 2009 20:10

euge patrida!! :lol: ton tsakoses!!

vale to echo "$totalAmount"; mesa sto while...
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Αναζήτηση σε php με κριτήριο την ημερομηνία...?

Δημοσίευση από vassilism » 07 Δεκ 2009 20:58

:lol: Ρε πατρίδα εσύ που ξέρεις τα πολλά και ο νους σου κατεβάζει για εξήγησέ μου λίγο.
Γιατί οι $date1Int και $date2Int πρέπει να είναι έτσι?

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

$date1Int = mktime&#40;0,0,0,$dateArr1&#91;1&#93;,$dateArr1&#91;2&#93;,$dateArr1&#91;0&#93;&#41; ; 
Και όχι έτσι:

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

$date1Int = $dateArr1&#91;2&#93;,$dateArr1&#91;1&#93;,$dateArr1&#91;0&#93;;
Δηλαδή για ποιο λόγο βάζουμε την mktime()? Αφού στην βάση του οι ημερομηνίες είναι της μορφής xxxx/xx/xx.

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

Αναζήτηση σε php με κριτήριο την ημερομηνία...?

Δημοσίευση από fafos » 07 Δεκ 2009 22:47

vassilism έγραψε::lol: Ρε πατρίδα εσύ που ξέρεις τα πολλά και ο νους σου κατεβάζει για εξήγησέ μου λίγο.
Γιατί οι $date1Int και $date2Int πρέπει να είναι έτσι?

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

$date1Int = mktime&#40;0,0,0,$dateArr1&#91;1&#93;,$dateArr1&#91;2&#93;,$dateArr1&#91;0&#93;&#41; ; 
Και όχι έτσι:

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

$date1Int = $dateArr1&#91;2&#93;,$dateArr1&#91;1&#93;,$dateArr1&#91;0&#93;;
Δηλαδή για ποιο λόγο βάζουμε την mktime()? Αφού στην βάση του οι ημερομηνίες είναι της μορφής xxxx/xx/xx.
afou eipe oti tis alakse se timestamp!!
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...


saholias
Δημοσιεύσεις: 17
Εγγραφή: 12 Νοέμ 2009 02:32

Αναζήτηση σε php με κριτήριο την ημερομηνία...?

Δημοσίευση από saholias » 07 Δεκ 2009 23:07

Καλησπέρα και πάλι


Το echo το έχω μέσα στη while γιατί θέλω να εκτυπωθεί το σύνολο. Μεσα στη while γίνεται η συνεχής πρόσθεση και στο τέλος θέλω να εκτυπώσω το σύνολο της πρόσθεσης αυτής και όχι κάθε φορά την τιμή που βρίσκει η "λούπα".

Η αλήθεια είναι πως δεν γνωρίζω τι συγκρίνω, οι τιμές- ημερομηνίες είναι αποθηκευμένες ως timestamp στη βάση μου. Πρέπει να κάνω καμιά αλλαγή όπως ατις ημερομηνίες που εισάγει ο χρήστης;;;;;; Και αν ναι πώς;;;;

:question: :question: :question: :question: :question: :question: :question:
$query = "SELECT b_ammount FROM fiales WHERE d_aimod BETWEEN $date1Int AND $date2Int ";

η μόνη επαφή με το πεδίο στη βάση είναι στο query, αν θεωρήσω οτι συγκρίνω χχχχ/μμ/μμ με μμ/μμ/χχχχ πως κάνω την πολυπόθυτη αλλαγή;;; :P

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

Αναζήτηση σε php με κριτήριο την ημερομηνία...?

Δημοσίευση από fafos » 07 Δεκ 2009 23:11

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

 $totalAmount += $row&#91;'b_ammount'&#93;; 
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

saholias
Δημοσιεύσεις: 17
Εγγραφή: 12 Νοέμ 2009 02:32

Αναζήτηση σε php με κριτήριο την ημερομηνία...?

Δημοσίευση από saholias » 07 Δεκ 2009 23:35

se alli selida douleuei opws einai mallon kati allo einai...

Απάντηση

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

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

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