PHP Centeri avaleht Skriptikogu Küsimuste-vastuste leht Teadete vaatamine ja saatmine Foorum - koht küsimiseks Otsingumootor Siit saad infot meie kohta

Kasutajanimi:  
  Parool: 
  Registreeri!   Unustasid salasõna?

Foorumid Programmeerimine PHP & MySQL päringu tegemine valitud kuupäevast alates - KORRAS!
Autor Abi Postitus Abi

vkok


Postitusi: 12
Tase: 2
Olek: Offline

Hinnang: Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10
päringu tegemine valitud kuupäevast alates - KORRAS!

Olen teinud ühe sellise formi kus ühel lehel küsitakse kasutajalt teatud kuupäeva peale mida kuvatakse mysql olevad andmed.

Formi kood on järgmine:
Koodijupp:
print "<form name=\"aruanne1\" action=\"./kontroll.php?action=aruanne2\" method=post>";
print "<table width=100% border=0 cellpadding=3>";
print "<tr><td align=right>Alates:</td><td align=left> <input type=\"text\" name=\"alates\"></td></tr>";
print "<TR height=10><td></td><Td></td>";
print "<tr><td></td><td align=left></td>";
print "</table>";
print "<P>";
print "<input type=submit value=\"Vaata aruannet\"></form>";



Ja tulemused kuvatakse sellise koodiga:
PHP kood:

            $sql "SELECT * FROM kirjadekontroll where kp >= \"$alates\" ";
            
$result mysql_query($sql)
            or die(
"Ei saa andmebaasiga ühendust.");

            
            
$num_rows mysql_num_rows($result);
            print 
"<table border=\"0\">";
            print 
"<tr>";
            print 
"<td bgcolor=\"#808080\"><font color=\"#FFFFFF\"><b>Kirjakast</b></font></td>";
            print 
"<td bgcolor=\"#808080\"><font color=\"#FFFFFF\"><b>Asukoht</b></font></td>";
            print 
"<td bgcolor=\"#808080\"><font color=\"#FFFFFF\"><b>I tühjendus</b></font></td>";
            print 
"<td bgcolor=\"#808080\"><font color=\"#FFFFFF\"><b>II tühjendus</b></font></td>";
            print 
"<td bgcolor=\"#808080\"><font color=\"#FFFFFF\"><b>III tühjendus</b></font></td>";
               print 
"<td bgcolor=\"#808080\"><font color=\"#FFFFFF\"><b>Postitamise kuupäev</b></font></td>";
            print 
"<td bgcolor=\"#808080\"><font color=\"#FFFFFF\"><b>Tempeldamise koht</b></font></td>";
            print 
"<td bgcolor=\"#808080\"><font color=\"#FFFFFF\"><b>Tempeldamise kuupäev</b></font></td>";
            print 
"<td bgcolor=\"#808080\"><font color=\"#FFFFFF\"><b>Sihtkoht</b></font></td>";
            print 
"<td bgcolor=\"#808080\"><font color=\"#FFFFFF\"><b>Saadud</b></font></td>";
            print 
"<td bgcolor=\"#808080\"><font color=\"#FFFFFF\"><b>Hilinemise aeg</b></font></td>";
            print 
"<td>&nbsp;</td>";
              print 
"</tr>";
            


            
            
            if (
$cur_page == "") {$cur_page 0;}
            
$page_num $cur_page 1;
            
$total_num_page ceil($num_rows/$listings_per_page);
            print 
"<Center>";
        
        
        
            if (
$total_num_page != 0)
                {
                Print 
"Lehekülg $page_num / $total_num_page<BR>";
        
                
$prevpage $cur_page-1;
                
$nextpage $cur_page+1;
                if (
$page_num != 1){print "<a href=\"./kontroll.php?cur_page=$prevpage\">Eelmine</a>     ";}
                if (
$page_num != $total_num_page){print "  <a href=\"./kontroll.php?cur_page=$nextpage\">Järgmine</a>     ";}
                }
            

        
            
$limit_str "LIMIT "$cur_page $listings_per_page .",$listings_per_page";
            
            
$result mysql_query("SELECT * FROM kirjadekontroll $limit_str",$link);
            
            while (
$a_row =mysql_fetch_array ($result) )
                {
                
                
//strip slashes so input appears correctly
                
$a_row[kirja_id] = stripslashes($a_row[kirja_id]);
                
$a_row[kast_id] = stripslashes($a_row[kast_id]);
                
$a_row[kp] = stripslashes($a_row[kp]);
                
$a_row[tempKoht] = stripslashes($a_row[tempKoht]);
                
$a_row[tempKP] = stripslashes($a_row[tempKP]);
                
$a_row[sihtkoht] = stripslashes($a_row[sihtkoht]);
                
$a_row[saadud] = stripslashes($a_row[saadud]);
                
$a_row[hilinemine] = stripslashes($a_row[hilinemine]);
                
$a_row[hiliAeg] = stripslashes($a_row[hiliAeg]);
                
$a_row[markused] = stripslashes($a_row[markused]);
                

                print 
"<tr>";                    

                    
$kast mysql_query("select * from kirjakastid where nr = '$a_row[kast_id]'");
                    while (
$a_row3 mysql_fetch_array ($kast) )
                    print 
"<td>$a_row3[nr]&nbsp;</td><td>$a_row3[asukoht]&nbsp;</td><td>$a_row3[ityhjendus]&nbsp;</td><td>$a_row3[iityhjendus]&nbsp;</td><td>$a_row3[iiityhjendus]&nbsp;</td>";
                print 
"<td>";
                
$kuupaevake explode ("-",$a_row['kp']);
                
$kuupaev "$kuupaevake[2].$kuupaevake[1].$kuupaevake[0]";
                print 
"".$kuupaev."</td>";
                print 
"<td>$a_row[tempKoht]&nbsp;</td>";
                print 
"<td>$a_row[tempKP]&nbsp;</td>";
                print 
"<td>$a_row[sihtkoht]&nbsp;</td>";
                print 
"<td>$a_row[saadud]&nbsp;</td>";
                print 
"<td>$a_row[hiliAeg]&nbsp;</td>";
                  print 
"</tr>";
                
            }}



Probleem selline, et see otsimis funktsioon ei toimi. Kus juures kui teha sama asi phpMyAdminis asendades $alates mingi X kuupäevaga siis asi töötab.

Ei jaga matsu välja, mida ma valesti teen.

Seda postitust on muudetud 1 kord (2005-10-04 16:07:12 vkok poolt)

04.10.2005 14:04:21 Vajutades siia näed kasutaja vkok profiili

uugu21

Postitusi: 380
Tase: 6
Olek: Offline

Hinnang: Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10
RE: päringu tegemine valitud kuupäevast alates

Tsiteeritud tekst:
Probleem selline, et see otsimis funktsioon ei toimi

Mis tähendab "ei toimi"? Annab vale ajavahemiku, teatab mingi veateate, jooksutab masina kinni, toob KAPO töötajad ukse taha...??? Edaspidi kirjelda seda mittetöötamist.
Silma jäid paar asja: esiteks kus väärtustatakse muutuja $alates? Teiseks: kuidas on garanteeritud kasutaja poolt sisestatud kuupäeva õige vorm (kuju)?


04.10.2005 14:20:42 Vajutades siia näed kasutaja uugu21 profiili

vkok


Postitusi: 12
Tase: 2
Olek: Offline

Hinnang: Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10
RE: päringu tegemine valitud kuupäevast alates

mitte toimumine tähetdan seda, et kuvab kõik kirjed mis nimetatud tabelis kirjas.

Selle õige kuju peale mõeldes, mõtlesin, et teen sinna kuupäeva valiku juurde kolm rippmenüüd (päev, kuu, aasta) siis saan ise määrata koodis õige kuju ja kasutaja ei saa seda iseseivalt muuta.

04.10.2005 14:23:32 Vajutades siia näed kasutaja vkok profiili

vkok


Postitusi: 12
Tase: 2
Olek: Offline

Hinnang: Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10
RE: päringu tegemine valitud kuupäevast alates

Rippmenüüdega valik:
PHP kood:

            print "<tr><td align=right>Alates:</td><td align=left> ";
            print 
"<select name=\"aaasta\" >";
                for (
$i date("Y"); $i <= date("Y")+10$i++) 
                {
                       print 
"<option value=\"".$i."\">".$i."</option>";
                }
                 print 
"</select> - <select name=\"akuu\" class=\"kast\">";
                 for (
$i 1$i <= 12$i++) 
                    {
                     
$j=$i;
                 if (
strlen($j) != "2"):
                       
$j="0".$j;
                 endif;    
                       print 
"<option value=\"".$j."\">".$j."</option>";
                }
             print 
"</select> - <select name=\"apaev\" class=\"kast\">";
             for (
$i 1$i <= 31$i++) 
                {
                 
$j=$i;
                 if (
strlen($j) != "2"):
                   
$j="0".$j;
                 endif;
                       print 
"<option value=\"".$j."\">".$j."</option>";
                }
            print 
"</td></tr>";



Päringu tegemise kood:
PHP kood:

$sql "SELECT * FROM kirjadekontroll where kp >= '$aaasta-$akuu-$apaev' ";



Viga sellest, et kuvab kõik tabelis olevad kirjed aga oleks tarvis, et kuvaks ainult nii kirjed, mida jäävad valitud kuupäevast edasi (on uuemad kui valitud kuupäevad)

04.10.2005 14:26:19 Vajutades siia näed kasutaja vkok profiili

uugu21

Postitusi: 380
Tase: 6
Olek: Offline

Hinnang: Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10
RE: päringu tegemine valitud kuupäevast alates

no aga trüki siis oma sql välja. Näed ilusti ära, mida sa tegelikult baasist küsid.

04.10.2005 14:29:59 Vajutades siia näed kasutaja uugu21 profiili

vkok


Postitusi: 12
Tase: 2
Olek: Offline

Hinnang: Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10
RE: päringu tegemine valitud kuupäevast alates

SQL siis selline:
PHP kood:

SELECT FROM kirjadekontroll where kp >= '2005-01-01' 



Kui selle phpMyAdmini kopeerisin siis kuvas kõik täpselt nii nagu vaja aga eelpool toodud php kood kuvab sellegi poolest kõik kirjed, mis tabelis on

04.10.2005 14:35:49 Vajutades siia näed kasutaja vkok profiili

uugu21

Postitusi: 380
Tase: 6
Olek: Offline

Hinnang: Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10Administratiivhinnang: 9/10
RE: päringu tegemine valitud kuupäevast alates

üks jupp su koodist.
Tsiteeritud tekst:
            $limit_str = "LIMIT ". $cur_page * $listings_per_page .",$listings_per_page";
            
            $result = mysql_query("SELECT * FROM kirjadekontroll $limit_str",$link);

mis sa ise sellest nagu arvad?

04.10.2005 15:53:47 Vajutades siia näed kasutaja uugu21 profiili

vkok


Postitusi: 12
Tase: 2
Olek: Offline

Hinnang: Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10
RE: päringu tegemine valitud kuupäevast alates

just jõudsin koodi kontrollimisega ka selleni ja seal see jura sees oligi ja asi toimib ilusti. Aga tänud sellegi poolest.

04.10.2005 16:06:24 Vajutades siia näed kasutaja vkok profiili
Kokku: 25955 registreerunud kasutajat, 9711 teemat, 54603 postitust.
Täna on neljapäev, 28. mai 2020. Kell on 05:46.

    Vaata selle lehe printerisõbralikku versiooni

Avaleht   -    Skriptikogu   -    Teated   -    Foorum   -    Reklaam   -    Tagasiside   -    Kasutamise reeglid

© Copyright 2002-2020 PHP Center. Kõik õigused reserveeritud.