Link to home
Start Free TrialLog in
Avatar of meclive
meclive

asked on

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
 }

  ?>
Avatar of chipple
chipple

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!
Hi,

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

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


Hope This Helps!
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
  }  
Avatar of meclive

ASKER

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.
Avatar of meclive

ASKER

points upped to 335, anybody got an idea?
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>


Avatar of meclive

ASKER

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".
Avatar of meclive

ASKER

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.
ASKER CERTIFIED SOLUTION
Avatar of Umesh
Umesh
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of meclive

ASKER

Works perfectly, thanks for all your help its much appreciated :0)