Avatar billede anderseiler Nybegynder
17. oktober 2005 - 13:26 Der er 4 kommentarer og
1 løsning

Udtræk fra access database

Hejsa :)

Jeg har et problem med et udtræk fra en access database i php. Min kode er som følger:

$db = 'C:\\Program Files\\apache groups\\Apache\\htdocs\\lyngsoe\\AuditdB.mdb';
$conn = new COM('ADODB.Connection');
$conn->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=$db");

if(isset($_POST['submit']))
{
    if ($_POST['person'] !== "")
    {
    $strSQL = "SELECT T_AudititemDefects.*, T_AuditPlan.PlanNo, T_AuditItem.AuditItemVisitID, T_AuditItem.AuditVisitID, T_AuditCategory.CategoryName, T_DepartmentList.DepartmentID, T_DocItems.Title, T_DepartmentList.DepartmentName, T_DepartmentList.DptManager, T_DocItems.Reference, T_AuditVisit.AuditDate, T_AuditVisit.Auditor
          FROM T_DepartmentList RIGHT JOIN ((T_AuditPlan RIGHT JOIN (T_AuditCategory RIGHT JOIN T_AuditVisit ON T_AuditCategory.ID = T_AuditVisit.AuditCategoryID) ON T_AuditPlan.PlanID = T_AuditVisit.PlanID) RIGHT JOIN ((T_AuditItem LEFT JOIN T_DocItems ON T_AuditItem.AuditItemListID = T_DocItems.DocItemID) RIGHT JOIN T_AudititemDefects ON T_AuditItem.AuditItemVisitID = T_AudititemDefects.AuditItemVisitID) ON T_AuditVisit.AuditVisitID = T_AuditItem.AuditVisitID) ON T_DepartmentList.DepartmentID = T_AuditVisit.DepartmentID
          WHERE T_AudititemDefects.Deltager like '%" & $_POST['person'] & "%' order by " & sortering & ""; }
}

$rs = $conn->Execute($strSQL);

echo $rs->Fields['T_AudititemDefects']->Value;


Jeg får så en fejl i linen med $rs = $conn->Execute($strSQL); som hedder:

Warning: (null)(): Invoke() failed: Exception occurred. Source: Microsoft JET Database Engine Description: Command text was not set for the command object. in c:\program files\apache groups\apache\htdocs\lyngsoe\soeg.php on line 41


Hvad kan det skyltes??

Mvh
Anders
Avatar billede nielle Nybegynder
17. oktober 2005 - 14:32 #1
Prøv at rette dine &-tegn (ASP-kode) til .-tegn (siden det nu er PHP-kode):

$strSQL = "SELECT T_AudititemDefects.*, T_AuditPlan.PlanNo, T_AuditItem.AuditItemVisitID, T_AuditItem.AuditVisitID, T_AuditCategory.CategoryName, T_DepartmentList.DepartmentID, T_DocItems.Title, T_DepartmentList.DepartmentName, T_DepartmentList.DptManager, T_DocItems.Reference, T_AuditVisit.AuditDate, T_AuditVisit.Auditor
          FROM T_DepartmentList RIGHT JOIN ((T_AuditPlan RIGHT JOIN (T_AuditCategory RIGHT JOIN T_AuditVisit ON T_AuditCategory.ID = T_AuditVisit.AuditCategoryID) ON T_AuditPlan.PlanID = T_AuditVisit.PlanID) RIGHT JOIN ((T_AuditItem LEFT JOIN T_DocItems ON T_AuditItem.AuditItemListID = T_DocItems.DocItemID) RIGHT JOIN T_AudititemDefects ON T_AuditItem.AuditItemVisitID = T_AudititemDefects.AuditItemVisitID) ON T_AuditVisit.AuditVisitID = T_AuditItem.AuditVisitID) ON T_DepartmentList.DepartmentID = T_AuditVisit.DepartmentID
          WHERE T_AudititemDefects.Deltager like '%" . $_POST['person'] . "%' ORDER BY " . sortering;
Avatar billede anderseiler Nybegynder
17. oktober 2005 - 14:49 #2
Så får jeg sådan en fejl her:

Warning: (null)(): Invoke() failed: Exception occurred. Source: Microsoft OLE DB Provider for ODBC Drivers Description: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2. in c:\program files\apache groups\apache\htdocs\lyngsoe\soeg.php on line 54
Avatar billede nielle Nybegynder
17. oktober 2005 - 15:10 #3
Jeg ved ikke om det er det der skal til, men prøv at indsætte nogle SELECTs i dine indre querys:

$strSQL = "
SELECT T_AudititemDefects.*, T_AuditPlan.PlanNo, T_AuditItem.AuditItemVisitID, T_AuditItem.AuditVisitID, T_AuditCategory.CategoryName, T_DepartmentList.DepartmentID, T_DocItems.Title, T_DepartmentList.DepartmentName, T_DepartmentList.DptManager, T_DocItems.Reference, T_AuditVisit.AuditDate, T_AuditVisit.Auditor
FROM T_DepartmentList RIGHT JOIN
(
    SELECT *
    FROM
    (
        SELECT *
        FROM T_AuditPlan RIGHT JOIN
        (
            SELECT *
            FROM T_AuditCategory RIGHT JOIN T_AuditVisit ON T_AuditCategory.ID = T_AuditVisit.AuditCategoryID
        )
        ON T_AuditPlan.PlanID = T_AuditVisit.PlanID
    )
    RIGHT JOIN
    (
        (
            SELECT *
            FROM T_AuditItem LEFT JOIN T_DocItems ON T_AuditItem.AuditItemListID = T_DocItems.DocItemID
        )
        RIGHT JOIN T_AudititemDefects ON T_AuditItem.AuditItemVisitID = T_AudititemDefects.AuditItemVisitID
    )
    ON T_AuditVisit.AuditVisitID = T_AuditItem.AuditVisitID
)
ON T_DepartmentList.DepartmentID = T_AuditVisit.DepartmentID
WHERE T_AudititemDefects.Deltager LIKE '%" . $_POST['person'] . "%' ORDER BY " . sortering;
Avatar billede anderseiler Nybegynder
18. oktober 2005 - 11:30 #4
Har fået det til at virke.. Det var fordi tabellen ikke hed Deltager, men Employee :P Pinligt hehe...

Men tak uanset..
Avatar billede nielle Nybegynder
18. oktober 2005 - 18:38 #5
LOL ... kender godt den slags mysterier ;^)
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