Avatar billede benneharli Juniormester
27. juli 2006 - 01:19 Der er 12 kommentarer og
1 løsning

script og query giver ikke det samme

Hvis jeg korer det her query:

SELECT * FROM DoorsView

i en query analyzer faar jeg det her:

DoorId    DoorName
532613    CA puerta 08
532629    CA puerta 09
532869    CA puerta 18

(3 row(s) affected)

-- Hvis jeg derimod korer nedestaaende script, faar jeg ingenting. Nogen idéer?

SCRIPT

<?php

error_reporting(0);
    include( "config/config.php" );

        $sql = "SELECT * FROM DoorsView ORDER BY DoorId";

        $conn = odbc_connect($DSN,$db_login,$db_pw);
        $res = odbc_exec($conn,$sql);
        include ("conn.php");

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
        <meta http-equiv="pragma" content="no-cache">
        <title>Zone Census - Doors</title>
    </head>
    <body>
   
    <p align="center"><img border="0" src="header.jpg" width="768" height="101"><br>
    <br><b><font size="4">DOORS</font></p></b>
    </p>
   
    <div align="center">
    </div>
   
    <table width=600px align=center border=0>
    <tr><td colspan=3><hr></td></tr>

<?php
        $rows = odbc_num_rows($res);

        if ($rows > 0) {

            for ($n = 0; $n < $rows; $n++ ) {
                $item = odbc_fetch_array($res);
                echo "<tr><td colspan=2>$item[DoorId] $item[DoorName]</td></tr>\n";
            }
            echo "<tr><td colspan=3><hr></td></tr>";
        } else {
            echo "<script type=\"text/javascript\"> alert(\"No doors.\"); </script>";
        }
    odbc_close($conn);
   
   
?>
        </table>
    </body>
</html>
Avatar billede jakobdo Ekspert
27. juli 2006 - 08:32 #1
Prøv at start med at lav noget tjek om din connection til din database går godt:

$sql = "SELECT * FROM DoorsView ORDER BY DoorId";
$conn = odbc_connect($DSN,$db_login,$db_pw) or die('Connect failed');
$res = odbc_exec($conn,$sql) or die('Exec failed');
Avatar billede nielle Nybegynder
27. juli 2006 - 08:41 #2
Bør du ikke have din include ("conn.php"); *før* at du forsøger at forbinde til databasen?
Avatar billede benneharli Juniormester
28. juli 2006 - 14:57 #3
smider lige min config.php og min conn.php

config.php-->
<?php

//Database
$DSN = "Seven ODBC";
$db_login = "sa";
$db_pw = "SevenDB";

//Doors in and out. Seperate door ID's by ,
//Door ID's are found DoorsView
$doorsOut = "8341,8853,9365,9877";

//Doors with entry/exit readers
$doorsInOut = "10373,10885";

?>

conn.php-->
<?PHP       
        if  ($conn  <=  0)  {
                echo  "Error  in  connection to DB<BR>";
                exit;
                  }
?>
Avatar billede benneharli Juniormester
28. juli 2006 - 14:58 #4
det burde betyde at min forbindelse er OK. Ellers ville jeg faa en fejl...
Avatar billede nielle Nybegynder
28. juli 2006 - 15:37 #5
Jeg kan ellers ikke se noget kode, i det postede, som åbner forbindelse til databaseserveren, og efterfølgende udvælger en database...
Avatar billede benneharli Juniormester
28. juli 2006 - 15:43 #6
//Database
$DSN = "Seven ODBC";
$db_login = "sa";
$db_pw = "SevenDB";

        $sql = "SELECT * FROM DoorsView ORDER BY DoorId";

        $conn = odbc_connect($DSN,$db_login,$db_pw);
        $res = odbc_exec($conn,$sql);


Har en ODBC forbindelse configureret paa min PC. Det er ikke forbindelsen er der er noget galt med. Har et andet script der virker fint...
Avatar billede nielle Nybegynder
28. juli 2006 - 18:57 #7
Ok, jeg gir mig. Det ser ok ud. :^)

Du bør dog ændre i din conn.php

conn.php-->
<?PHP       
        if  ($conn === false)  {
                echo  "Error  in  connection to DB<BR>";
                exit;
                  }
?>


Og har du i øvrigt afprøvet forslaget fra 27/07-2006 08:32:11 endnu?
Avatar billede nielle Nybegynder
07. august 2006 - 20:58 #8
Har du fået det til at fungere?
Avatar billede benneharli Juniormester
08. august 2006 - 09:49 #9
nope... er imidlertid rendt ind i et andet problem ogsaa... Kan evt. have noget med det her at gore.

Efter at have opdateret min MSDE til SP4, har jeg et andet script der heller ikke virker???

Jeg taenker at det kan have noget at gore med opsatning af PHP.ini, eller at ODBC driveren i PHP har problemer med MSDE SP4... Ved du/I noget om det?

Smider scriptet der virkede med MSDE SP3, men ikke med SP4. Nojagtig samme script.

-->
<?php

error_reporting(0);

    include ( "validate.php" );
    include ( "config/config.php" );
    include ( "config/groups.php" );

    $doNew = $_REQUEST['doNew'];
    if ($doNew != null) {
        header("Location: view.php");
        exit;
    }

    $doSearch = $_REQUEST['doSearch'];
    if ($doSearch != null) {

       
        $searchStr = $_REQUEST['searchStr'];
        $searchStr = str_replace("'","''",stripslashes($searchStr));
        $cardNum = $_REQUEST['cardNum'];
        $groupStr = $_REQUEST['groupStr'];
       
       
        if (strlen($searchStr) > 0) {
            $searchEmpty = 0;
            $groupStr = 2;
            $sql = "SELECT * FROM IDWorksView WHERE (LastName LIKE '".$searchStr."%' OR FirstName LIKE '".$searchStr."%') AND TenantName = '".$tenant1name."' ORDER BY FirstName";
        } else if (strlen($cardNum) > 0) {
            $searchEmpty = 0;
            $groupStr = 2;
                $cardStr = dechex(($site*65536)+$cardNum);
                $zerolen = 16 - strlen($cardStr);
                $zeros = str_repeat("0", $zerolen);
                $cardStr = $zeros.$cardStr;
            $sql = "SELECT * FROM IDWorksView WHERE CardText = '".$cardStr."' AND TenantName = '".$tenant1name."' ORDER BY FirstName";
        } else {
            if ($groupStr == 1) {
                $searchEmpty = 1;
                $sql = "SELECT * FROM IDWorksView WHERE TenantName = '".$tenant1name."' AND GroupName IN ".$showGroups." ORDER BY TempStart DESC";
            } else if ($groupStr == 2) {
                $searchEmpty = 1;
                $sql = "SELECT * FROM IDWorksView WHERE TenantName = '".$tenant1name."' ORDER BY TempStart DESC";
            } else {
                $searchEmpty = 1;
                $sql = "SELECT * FROM IDWorksView WHERE TenantName = '".$tenant1name."' AND GroupName = '".$groupStr."' ORDER BY TempStart DESC";
            }
        }
        //print_r ($sql);// <- Debug SQL
        $conn = odbc_connect($DSN,$db_login,$db_pw);
        $res = odbc_exec($conn,$sql);
        include ("conn.php");
    }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
        <meta http-equiv="pragma" content="no-cache">
        <title>List</title>
        <script type="text/javascript">
            <!--
                function setfocus()    {
                    document.forms[0].searchStr.focus();
                }

               
                function confirmsubmit() {
                    var agree=confirm("¿Está seguro?");
                    if (agree)
                        return true;
                    else
                        return false;
                }
               

            //-->
        </script>
    </head>
    <body onload="setfocus();">
    <p align="center"><img border="0" src="header.jpg" width="768" height="101"></p>
        <table width=600px align=center border=0>
            <tr><td colspan=3><hr></td></tr>
            <form name="Search" method=post action="list.php">
                <tr>
                    <td width=40px>Nombre</td><td><input type="text" name="searchStr" value="<?php echo str_replace("''","'",$searchStr); ?>" maxlength="64" size="18">&nbsp;&nbsp;<input type="submit" name="doSearch" value="Buscar">&nbsp;&nbsp;<input type="submit" name="doNew" value="Nuevo">&nbsp;&nbsp;<INPUT type="button" value="Salir" onClick="location.href='logout.php'"></td>
                    <td align=right><img src="php-power-micro.png" border="0" alt="php" /></td>
                </tr>
                <tr>
                    <td width=40px>Tarjeta</td><td><input type="text" name="cardNum" value="<?php echo $cardNum; ?>" maxlength="16" size="18"></td>
                </tr>
                <tr>
                    <td width=40px>Grupo</td><td>
               
                    <select name="groupStr" maxlength="64" style="width: 200px" size="1">
                   
                    <?PHP
                   
                        print "<option value='1' ";
                        if ($groupStr == 1){
                            print " selected ";
                        }
                        print ">Grupos visita</option>";
                       
                        print "<option value='2' ";
                        if ($groupStr == 2){
                            print " selected ";
                        }
                        print ">Todo</option>";
                   
                        //groups from config/groups.php
                        foreach ($listGroups as $key => $value)   
                        {
                            print "<option value='".$value."'";
                            if ($groupStr == $value){
                                print " selected ";
                            }
                            print ">".$value."</option>";
                        }

                    ?>
                   
                    </select></td>
                </tr>
               
            </form>
<?php
    if ($doSearch != null) {   

        $rows = odbc_num_rows($res);

        if ($rows > 0) {

            echo "<tr><td height=8></td></tr>";
            echo "<tr><td colspan=3><hr></td></tr>";
                       
            for ($n = 0; $n < $rows; $n++ ) {
                if ($searchEmpty == 1) {
                    $item = odbc_fetch_array($res);
                    $date = date("d/m/Y",strtotime($item[TempStart]));
                    echo "<tr><td colspan=2 width=95%><a href=\"view.php?doRetrieve=true&individualid=$item[IndividualId]\" target=\"_self\">$date - $item[FirstName] $item[LastName]</a></td><td colspan=1 width=5%><a href=\"delete.php?id=$item[IndividualId]\" target=\"_self\" onClick='return confirmsubmit()'><IMG SRC='delete.gif' width='15' height='15' Border=0 align='right'></a></td></tr>\n";
                } else {
                    $item = odbc_fetch_array($res);
                    $date = date("d/m/Y",strtotime($item[TempStart]));
                    echo "<tr><td colspan=2 width=95%><a href=\"view.php?doRetrieve=true&individualid=$item[IndividualId]\" target=\"_self\">$item[FirstName] $item[LastName]</a></td><td colspan=1 width=5%><a href=\"delete.php?id=$item[IndividualId]\" target=\"_self\"><IMG SRC='delete.gif' width='15' height='15' Border=0 align='right'></a></td></tr>\n";
                }
                //Function to limit search results
                //if ($n >= 99) {
                    //    echo "<script type=\"text/javascript\"> alert(\"To many results. Write something else.\"); setfocus(); </script>";
                    //    break;
                //}
            }
        } else {
            echo "<script type=\"text/javascript\"> alert(\"Ningun resultado.\"); setfocus(); </script>";
        }
    }
    odbc_close($conn);
   
?>
        </table>
    </body>
</html>
Avatar billede nielle Nybegynder
08. august 2006 - 17:23 #10
Det vil nok hjælpe hvis du fortalte lidt om på hvilken måde det ikke fungere. Får du en fejlbesked? Hvilken? Eller sker der ikke noget, eller måske noget andet end du forventer? Og hvad forventer du egentlig at der skulle ske?
Avatar billede benneharli Juniormester
08. august 2006 - 17:43 #11
Jeg faar ingen fejl besked. Der sker bare ikke noget noget naar jeg korer mit script... Og det gjorde der altsaa da jeg korte MSDE SP3.

Det der skulle ske er at jeg forbinder til min MSDE med ODBC, og laver et query.

Hvis jeg f.eks. korer et query der hedder:
SELECT * FROM IDWorksView WHERE (LastName LIKE 'ben%' OR FirstName LIKE 'ben%') AND TenantName = 'Tenant 1' ORDER BY FirstName

Faar jeg ikke noget resultat i mit PHP script. Hvis jeg derimod korer det i en query analyzer, faar jeg mit resultat.

Tror ikke det er noget med scriptet eftersom praecis det samme script korer fint mod en MSDE SP3. Ved ikke hvad der er sket efter jeg korer SP4. Har testet min ODBC forbindelse, og den virker fint.
Avatar billede nielle Nybegynder
15. august 2006 - 11:33 #12
Hmmm, nej, den kan jeg åbenbart ikke lige gennemskue. Beklager. :^|
Avatar billede benneharli Juniormester
21. august 2006 - 11:51 #13
ok
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