Avatar billede mibu Nybegynder
22. juli 2007 - 18:04 Der er 22 kommentarer og
1 løsning

Søg mellen to id eller to datoer

Jeg har prøver at lave en søgeform hvor man kan søge i en tabel ud fra enter mellem to indtastede id nr. eller to indtastede datoer.
Kan ikke få det til at lykkes!
Det må da kunne gøres, men ak! når jeg får andet end fejl, får jeg HELE tabellen.
Nogen forslag?
Avatar billede mstorgaard Praktikant
22. juli 2007 - 20:34 #1
Er det query'en du har problemer med at lave, eller er det måden at opstille det på, så du kan vælge én af de to muligheder?
Avatar billede mibu Nybegynder
22. juli 2007 - 20:56 #2
Det er nok lidt begge del!
Avatar billede mstorgaard Praktikant
22. juli 2007 - 22:32 #3
Prøv at kopiere et af dine tidligere forsøg herind (:
Avatar billede mibu Nybegynder
22. juli 2007 - 23:06 #4
Jeg tror nok min form virker nu, men min query kan jeg ikke lige få til at virke.
Her er min formular-side, jeg mangler lige at finde ud af hvad det hedder når min query skal søge "imellem" to intervaller.:

Søgning efter bilagsnr.<br>
<table>
   
   
    <form name="indtast" method="post" action="svar_bilag.php">
    <tr align="center">
        <td>Fra</td><td>Til</td><td></td>
    </tr>

    <tr>
        <td><input type="text" name="id" size="4" maxlength="4"></td>
        <td><input type="text" name="id" size="4" maxlength="4"></td>
</table>
<hr width="50%"><br><br>Eller søg datointerval.<br>
<table>   
       
   
<?
    // include the class
require "class.datepicker.php";

// instantiate the object
$dp=new datepicker();
?>
   
    <tr>
        <td>Fra</td>

        <td><input type="text"  id="dato1" name="dato1" size="10" maxlength="10"></td>
        <td><input type="image" src="kalender.gif" value="..." onclick="<?=$dp->show("dato1")?>"></td>
   
   
    <td>&nbsp;&nbsp;&nbsp;&gt;&nbsp;&nbsp;&nbsp;Til</td>
   
       
        <td><input type="text"  id="dato2" name="dato2" size="10" maxlength="10"></td>
        <td><input type="image" src="kalender.gif" value="..." onclick="<?=$dp->show("dato2")?>"></td>
    </table><br><br>
    <hr width="50%"><br>   
    <table>
    <tr>
        <td><input type="submit" name="send" value="Søg efter bilag"></td></tr>
        </form>
    </table><br>
Avatar billede mibu Nybegynder
22. juli 2007 - 23:35 #5
Jeg tager lige en powernap! :O
Avatar billede mstorgaard Praktikant
23. juli 2007 - 02:04 #6
Der skal du nok vælge at lave noget i retning af:
mysql_query("SELECT * FROM tabel WHERE dato>'" . $_POST['dato1'] . "' AND dato<'" . $_POST['dato2'] . "'");
Avatar billede mibu Nybegynder
23. juli 2007 - 11:10 #7
Så har jeg prøvet din string, og får dettet svar:

Parse error: parse error, unexpected T_STRING in /-----/svar_bilag.php on line 33
(linie 33 er query'en)

Min kode ser nu sådan her ud:

<?

                $dato1 = $_REQUEST["dato1"];
                $dato2 = $_REQUEST["dato2"];
                $id1 = $_REQUEST["id1"];
                $id2 = $_REQUEST["id2"];


//Henter forespørgelse

$query mysql_query("SELECT * FROM bilag WHERE dato>'" . $_dato1['dato1'] . "' AND dato<'" . $_dato2['dato2'] . "'");

if (mysql_num_rows($query) > 0)
{
    while ($row = mysql_fetch_assoc($query))
{

    echo"<br>
        <center><table align=center border=0 width=500>
       
        <tr><hr>
        <td width=20% align='right'>Bilagsnr.:</td>
        <td width=10% align='left'>".$row["id"]."</td>
        <td width=50% align='right'>Bogført d.: </td>
        <td width=20% align='left'>".$row["dato"]."</td>
        </tr></table></center>
        <table align=center border=0 width=500>
        <tr>
        <td width=20% align='right'>Til dækning af.: </td>
        <td width=80% align='left'>".$row["tekst"]."</td>
        </tr></table></center>
        <table align=center border=0 width=500>
        <tr><hr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        </tr>
       
        <tr>
        <td align='right'>Debiteret.: </td>
        <td align='left'>".$row["til"]."</td>
        <td align='right'>Krediteret.: </td>
        <td align='left'>".$row["fra"]."</td>
        </tr>
       
        <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        </tr>
       
        <tr>
        <td align='center'>Indgået bank.</td>
        <td align='center'>Hævet bank.</td>
        <td align='center'>Indsat kasse.</td>
        <td align='center'>Hævet kasse.</td>
        </tr>
       
        <tr>
        <td align='center'>".$row["ind_b"]."</td>
        <td align='center'>".$row["ud_b"]."</td>
        <td align='center'>".$row["ind_k"]."</td>
        <td align='center'>".$row["ud_k"]."</td>
        </tr>
        </table></center>
       
        <table align=center border=0 width=500>
        <tr>
        <td></td>
        <td></td>
        <td></td>
        <td></td>
        </tr><hr>
        </table>
        <br><hr color='000000' size='6'>
        </center>";

}
}

?>
Avatar billede mstorgaard Praktikant
23. juli 2007 - 15:32 #8
Den her linje:
$query mysql_query("SELECT * FROM bilag WHERE dato>'" . $_dato1['dato1'] . "' AND dato<'" . $_dato2['dato2'] . "'");
Skal rettes til den her:
$query = mysql_query("SELECT * FROM bilag WHERE dato>'" . $_dato1['dato1'] . "' AND dato<'" . $_dato2['dato2'] . "'");
Avatar billede mibu Nybegynder
23. juli 2007 - 16:02 #9
SHIT! godt ikke man skal gi' "kvaje øl" :-)

MEN! Nu skriver den ikke fejl mere, men kommer frem med en blank side?

Kan du se andre fejl (der er poster i tabellen)?
Avatar billede mstorgaard Praktikant
23. juli 2007 - 16:48 #10
Hvordan er din tabel-struktur?
Avatar billede mibu Nybegynder
23. juli 2007 - 16:54 #11
id int(6)
dato date ---- -- -- (ikke timestamp)
tekst varchar(25)
ind_b decimal 10.2
ind_k decimal 10.2
ud_b decimal 10.2
ud_b decimal 10.2
Avatar billede mstorgaard Praktikant
23. juli 2007 - 22:02 #12
Hvordan er datoen så formateret? For det bliver en del mere besværligt at søge på, når det ikke er timestamp.
Avatar billede mibu Nybegynder
23. juli 2007 - 22:24 #13
Y-m-d (2007-07-23)
Avatar billede mibu Nybegynder
23. juli 2007 - 23:26 #14
Og min "datepicker" virker så det er ikke den der indsætter forkert, jeg bruger den til at sætte de datoer jeg nu vil finde!
Det kan næsten kun være her fejlen ligger:

$query mysql_query("SELECT * FROM bilag WHERE dato>'" . $_dato1['dato1'] . "' AND dato<'" . $_dato2['dato2'] . "'");

if (mysql_num_rows($query) > 0)
{
    while ($row = mysql_fetch_assoc($query))
{
Avatar billede mibu Nybegynder
23. juli 2007 - 23:28 #15
Mangler stadig =  :-) men kun her!
Avatar billede mstorgaard Praktikant
24. juli 2007 - 00:03 #16
Det letteste ville være at gøre sådan så du ville få timestamp i din tabel, men ellers kan du benytte mktime() til at konvertere din Y-m-d til timestamp.
Avatar billede mibu Nybegynder
24. juli 2007 - 08:49 #17
Jeg vil helst ikke bruge timestamp, i det det netop er et krav at man selv skal kunne definerer "bogføringsdatoen"

Jeg har også prøvet at rette query'en til søgning mellem id.nr. dit og dat, det virker heller ikke!
Avatar billede mibu Nybegynder
24. juli 2007 - 11:48 #18
Ved søgning her på sitet kan man finde en del med asp, hvor der bruges kommandoen BETWEEN, findes der ikke noget i den stil i PHP?
Avatar billede mibu Nybegynder
25. juli 2007 - 14:42 #19
SHOWSOURCE Skrev på http://www.eksperten.dk/spm/788843
Hvorfor bruger du samme navn til dine to query's?
Men de kan jo også lægges sammen

$query = mysql_query("SELECT * FROM bilag WHERE dato BETWEEN '". $dato1 ."' AND '". $dato2 ."' OR id BETWEEN ". intval($dato1) ." AND ". intval($dato2) ."") or die (mysql_error());

Og skrev:
og b.t.w. kun et spm må oprettes om det samme. Så luk hellere her, og fortsæt i det gamle
Avatar billede mibu Nybegynder
25. juli 2007 - 14:45 #20
Undskylder igen de to tråde.

Vil MSTORGAARD venligst også lægge et svar, så kan i dele point,
Avatar billede showsource Seniormester
25. juli 2007 - 14:46 #21
ingen point, ellers tak
Avatar billede mibu Nybegynder
25. juli 2007 - 15:11 #22
Okay! men så modtag min tak!
Avatar billede mstorgaard Praktikant
25. juli 2007 - 15:44 #23
Svar
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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

IT-JOB