tags:

views:

79

answers:

1

I'll admit I'm a novice programmer and really the only experience I have is in classic ASP. I'm looking for a way to convert this asp code to PHP. For a customer who only has access to a linux box but also as a learning tool for me.

Thanks in advance for the help:

Recordset and Function:

Function pd(n, totalDigits) 
        if totalDigits > len(n) then 
            pd = String(totalDigits-len(n),"0") & n 
        else 
            pd = n 
        end if 
End Function 


'declare the variables
Dim Connection
Dim Recordset
Dim SQL
Dim SQLDate

SQLDate = Year(Date)& "-" & pd(Month(Date()),2)& "-" & pd(Day(Date()),2)

'declare the SQL statement that will query the database
SQL = "SELECT * FROM tblXYZ WHERE element_8 = 2 AND element_9 > '" & SQLDate &"'"

'create an instance of the ADO connection and recordset objects
Set Connection = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")

'open the connection to the database
Connection.Open "PROVIDER=MSDASQL;DRIVER={MySQL ODBC 5.1 Driver};SERVER=localhost;UID=xxxxx;PWD=xxxxx;database=xxxxx;Option=3;" 

'Open the recordset object executing the SQL statement and return records
Recordset.Open SQL,Connection

Display page/loop:

Dim counter
counter = 0

    While Not Recordset.EOF
        counter = counter + 1

        response.write("<div><td width='200' valign='top' align='center'><a href='" & Recordset("element_6") & "' style='text-decoration: none;'><div id='ad_header'>" & Recordset("element_3") & "</div><div id='store_name' valign='bottom'>" & Recordset("element_5") & "</div><img id='photo-small-img' src='http://xyz.com/files/" & Recordset("element_7") & "' /><br /><div id='ad_details'>"& Recordset("element_4") & "</div></a></td></div>")
        Recordset.MoveNext
        If counter = 3 Then
            Response.Write("</tr><tr>")
            counter = 0
        End If
    Wend
+1  A: 

It would look something like this...

$sqldate = strftime('Y-m-d',time()); // time defaults to now - change unix time to string
$sql = "SELECT * FROM tblXYZ WHERE element_8 = 2 AND element_9 '$date'";

$pdoCon = new PDO($connString, $username, $password);

$outputTpl = '<div><td width="200" valign="top" align="center"><a href="%s" style="text-decoration: none;"><div id="ad_header">%s</div><div id="store_name" valign="bottom">" %s</div><img id="photo-small-img" src="http://xyz.com/files/%s" /><br /><div id="ad_details">%s</div></a></td></div>';

$count = 0;
foreach($pdoCon->query($sql) as $row) {
  $counter++;
  echo sprintf(
      $outputTpl, 
      $row['element_6'],
      $row['element_3'],
      $row['element_5'], 
      'http://xyz.com/files/' . $row['element_7'], 
      $row['element_4']
  );

  if($counter == 3) {
     echo '<tr></tr>';
     $counter = 0;
  }
}
prodigitalson
Thanks that is exactly what i'm looking for. Unfortunately its giving me a 500 internal server error.
jethomas
Im going to guess you dont have the PDO dirver for MSSQL (its experimental i think) or perhaps PDO at all. Yore on your own there as i dont use MSSQl and have no idea. This was just a general example primarily to let you compare the looping and outputting of text - youll need too research the specific DB aspects. I would suggest posting a new question about MSSQL connections in PHP. Then go from there.
prodigitalson
Thanks! I will look into it!
jethomas