• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 701
  • Last Modified:

PHP MS Access, populate drop-down/list box help.

I think this is a easy question, but im still learning php so don't laugh! Im using php to connect to a microsoft access database and i want to populate a drop-down box with the product numbers of the items in a table. I have seen many help pages on how to do this with my_sql but none for ms access as i need to find the equivelent of the "mysql_fetch_array()". I will post the code i have tried but not working below, it just takes ages to load and doesnt populate anything.

form.php

<?php
                         
if (!$conn = new COM("ADODB.Connection"))
        exit("Unable to create an ADODB connection<br>");
    $strConn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("databasefile");
    $conn->open($strConn);
      
    $strSQL = "SELECT Part_No FROM products";
      $rs = $conn->execute($strSQL);
      $prodno = $rs->fields['Part_No'];
                              
 ?>
                  <form name="update" method="post" action="deleted.php">
                    <select name="partno" size="1">
                      <?php
                               while (!$rs->EOF)
                               {
   
        print "<option value=\"$prodno->value\"></option>";
            
                               }
                               ?>
                    </select>
                    <input type="submit" name="Submit" value="Delete">
                  </form>
<?php
 }

  ?>
0
meclive
Asked:
meclive
  • 5
  • 4
1 Solution
 
chippleCommented:
To use a MS Access DB with PHP, you should use ODBC.
Set up an ODBC data source name, and then use PHP's ODBC functions (odbc_*) to access the database. They work pretty much the same as the mysql_* functions.

Doc.: http://www.php.net/manual/en/ref.uodbc.php

Good luck!
0
 
UmeshCommented:
Hi,

Check out this article, which explained & shown how PHP interact with MS Access

http://www.phpbuilder.com/columns/siddarth20000228.php3


Hope This Helps!
0
 
UmeshCommented:
try this..

$sql = "SELECT Part_No FROM products";
$rs = $conn->execute($strSQL);



 while (!$rs->EOF) {

    print "<option value=\"$rs->fields[0]\">$rs->fields[0]</option>";

    $rs->MoveNext();  //  Moves to the next row
  }  
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
mecliveAuthor Commented:
I have tried the above mentioned code and i just get "Object[0]" in the drop-down box. Also i dont think my hosting allows a ODBC connection so is there any way of doing this? I have upped the points to 250 as i relly need an answer thanks.
0
 
mecliveAuthor Commented:
points upped to 335, anybody got an idea?
0
 
UmeshCommented:
Hi,

replace this   c:/test.mdb with your actual database..



It's working fine for me..

<?php

if (!$conn = new COM("ADODB.Connection"))
exit("Unable to create an ADODB connection<br>");
$strConn = "DRIVER={Microsoft access Driver (*.mdb)}; DBQ=" . realpath("c:/test.mdb");
$conn->open($strConn);

$strSQL = "SELECT Part_No FROM products";
     $rs = $conn->execute($strSQL);
     $prodno = $rs->fields["Part_No"];


 ?>
                  <form name="update" method="post" action="deleted.php">
                    <select name="partno" size="1">
                      <?php
                          while (!$rs->EOF)
                          {

        print "<option value=\"$prodno->value\">$prodno->value</option>";
                          $rs->MoveNext();
                          }
                          ?>
                    </select>
                    <input type="submit" name="Submit" value="Delete">
                  </form>


0
 
mecliveAuthor Commented:
Thanks that works like a charm :0) you definatly get the points. The only problem i have is that i wish the first option in the drop-down box to either be blank or say "select from list".
0
 
mecliveAuthor Commented:
Also is there anyway i can order the drop down list box to put the results in order as they seem to be in a random order, thanks.
0
 
UmeshCommented:
try this..


<?php

if (!$conn = new COM("ADODB.Connection"))
exit("Unable to create an ADODB connection<br>");
$strConn = "DRIVER={Microsoft access Driver (*.mdb)}; DBQ=" . realpath("c:/test.mdb");
$conn->open($strConn);

$strSQL = "SELECT Part_No FROM products order by Part_No ASC";
     $rs = $conn->execute($strSQL);
     $prodno = $rs->fields["Part_No"];


 ?>
                  <form name="update" method="post" action="deleted.php">
                    <select name="partno" size="1">
                      <?php
        print "<option value=\"select from list\">select from list</option>";

                          while (!$rs->EOF)
                          {

        print "<option value=\"$prodno->value\">$prodno->value</option>";
                          $rs->MoveNext();
                          }
                          ?>
                    </select>
                    <input type="submit" name="Submit" value="Delete">
                  </form>
0
 
mecliveAuthor Commented:
Works perfectly, thanks for all your help its much appreciated :0)
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 5
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now