Avatar billede janorakel Nybegynder
11. oktober 2003 - 11:21 Der er 21 kommentarer og
2 løsninger

Datointerval søgning?

Jeg har en bibliografidatabase, hvori der er en dato for forfatterværkets færdiggørelse.
Jeg kunne godt tænke mig at lave en form hvori der to tekstfelter hvor man kan indtaste 1 dato i hver.
Disse 2 datoer udgør så intervallet i modtage-php.filen, som så viser alle de værker der er produceret i denne periode.
Men hvordan?
Avatar billede detox Nybegynder
11. oktober 2003 - 11:25 #1
Hvilket felttype bruger du til datoen?
Avatar billede janorakel Nybegynder
11. oktober 2003 - 11:26 #2
Og jeg benytter MySQL
Avatar billede jakobclausen Nybegynder
11. oktober 2003 - 11:26 #3
Din sql sætning:

SELECT * FROM tabel WHERE dato BETWEEN $_POST[Dato1], $_POST[Dato2];

tabel - Tabelnavnet
dato - dato kolonnen
dato1 - felt1
dato2 -felt
Avatar billede janorakel Nybegynder
11. oktober 2003 - 11:26 #4
Et alm. varchar(10)
Avatar billede jakobclausen Nybegynder
11. oktober 2003 - 11:28 #5
janorakel >> Det bedste er at bruge date
Avatar billede janorakel Nybegynder
11. oktober 2003 - 11:28 #6
SELECT * FROM tabel WHERE dato BETWEEN $_POST[Dato1], $_POST[Dato2];

Og så det andet?
skal der ikke være et $ foran?
Avatar billede detox Nybegynder
11. oktober 2003 - 11:30 #7
Ja, brug DATE eller DATETIME. Og så skal forespørgslen se fx, sådan her ud:

SELECT * FROM tabel WHERE dato BETWEEN  '2003-04-01' AND  '2003-12-01'
Avatar billede janorakel Nybegynder
11. oktober 2003 - 11:30 #8
Gør det noget at jeg benytter varchar?
Avatar billede janorakel Nybegynder
11. oktober 2003 - 11:32 #9
Det er fordi der er nogle som har indtastet flere datoer - Humanister I ved...
Avatar billede detox Nybegynder
11. oktober 2003 - 11:33 #10
Så må du nok prøve om det virker. Men forespørgslen skal retteligt være:

SELECT * FROM tabel WHERE dato BETWEEN  '$_POST[dato1]' AND  '$_POST[dato2]'
Avatar billede janorakel Nybegynder
11. oktober 2003 - 11:33 #11
dato1 og dato2 er et og samme felt - der er kun et felt!
Avatar billede detox Nybegynder
11. oktober 2003 - 11:36 #12
Men du har to felter i din form, ellers kan der jo næppe være tale om et interval.
Avatar billede janorakel Nybegynder
11. oktober 2003 - 11:41 #13
Yes, selvfølgelig - ..
Ahh, hvordan skal jeg skrive disse?:
tabel - second
dato - udgivelsestidspunkt_original
dato1 - $felt1
dato2 - $felt2
Avatar billede detox Nybegynder
11. oktober 2003 - 11:44 #14
SELECT * FROM second WHERE udgivelsestidspunkt_original BETWEEN  '$_POST[felt1]' AND  '$_POST[felt2]'

eller, hvis $felt1 og $felt2 indeholder datoerne:

SELECT * FROM second WHERE udgivelsestidspunkt_original BETWEEN  '$felt1' AND  '$felt2'
Avatar billede jakobclausen Nybegynder
11. oktober 2003 - 11:50 #15
detox >> Det er stadig en god ide at bruge $_post[ ]
Avatar billede detox Nybegynder
11. oktober 2003 - 11:53 #16
jacobclausen -> Enig, men nu mener jeg osse, hvis man først har brugt fx:

$felt1 = $_POST['felt1'];
$felt2 = $_POST['felt2'];
Avatar billede janorakel Nybegynder
11. oktober 2003 - 12:16 #17
ok, jeg forsøger mig lidt frem.
Avatar billede janorakel Nybegynder
11. oktober 2003 - 12:49 #18
Jeg har aftalt med gruppen at vi kun indtaster 4 cifre(årstal).
Min php-fil viser stadig intet...men jeg tror vi nærmer os.
Et udsnit af formen ser sådan ud:
        <td height="29" nowrap class="undermenu">&nbsp;&nbsp;Chercher le date de publication: </td>
        <td width="222" nowrap class="undermenu"><input name="felt1" size="10" style="WIDTH: 30%" class ="text">
          -
          <input name="felt2" size="10" style="WIDTH: 30%" class ="text"></td>
        <td width="132" nowrap class="undermenu"><div align="center">
            <input name="submit" type="submit" class="undermenu" value="Chercher">

Et udsnit af php-filen ser sådan ud:
<?php
$felt1 = $_POST['felt1'];
$felt2 = $_POST['felt2'];

$db = mysql_connect("localhost", "xxx", "xxx") or die ("Desværre ingen forbindelse til databasen");

mysql_select_db("book", $db) or die ("Kunne ikke vælge databasetabel");

if ($_POST['soegeord']) {
    echo "<font face='Verdana' size='1'>Denne side er genereret kl. ";
    echo date("H:i:s");
    echo "<br/>";
    $query = mysql_query("SELECT * FROM second WHERE udgivelsestidspunkt_original BETWEEN  '$_POST[felt1]' AND  '$_POST[felt2]'
' ORDER BY forfatternavn_efternavn ASC") or
die(mysql_error());
    $antal = mysql_num_rows($query);
    while ($row = mysql_fetch_array($query)) {
        if ($row)

Men søger den ikke blandt 2 felter i databasen? Den skal søge efter de 2 intervalfelter fra formen.
Avatar billede janorakel Nybegynder
11. oktober 2003 - 12:50 #19
Hvad skal stå i stedet for 'soegeord' ?
Noget med Case?
Avatar billede jakobclausen Nybegynder
11. oktober 2003 - 12:54 #20
Jeg ville fjerne If sætningen, kan jeg ikke helt se hvad du skal bruge til.
Avatar billede detox Nybegynder
11. oktober 2003 - 13:05 #21
Jeg vil nok prøve noget i den her stil:

<?php
if (isset($_POST['submit'])) {
    $felt1 = $_POST['felt1'];
    $felt2 = $_POST['felt2'];

    $db = mysql_connect("localhost", "xxx", "xxx") or die ("Desværre ingen forbindelse til databasen");
    mysql_select_db("book", $db) or die ("Kunne ikke vælge databasetabel");

    echo "<font face='Verdana' size='1'>Denne side er genereret kl. ";
    echo date("H:i:s");
    echo "<br/>";
    $query = mysql_query("SELECT * FROM second WHERE udgivelsestidspunkt_original BETWEEN  '$felt1' AND  '$felt2'
    ORDER BY forfatternavn_efternavn ASC") or die(mysql_error());
    $antal = mysql_num_rows($query);
    while ($row = mysql_fetch_array($query)) {
        // Vis de fundne resultater
    }
}
// osv...
Avatar billede janorakel Nybegynder
11. oktober 2003 - 13:07 #22
Det virker! Mange tak..
Detox --> smider du også et svar?
Jeg har også et andet spm. flyvende: http://www.eksperten.dk/spm/412400
hvis I kan hjælpe?
Avatar billede detox Nybegynder
11. oktober 2003 - 13:12 #23
Jo da - c",)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester