<?php 
 
    /*
 
        MySqueaks sample code
 
        As this code will write to your database,
 
        please make sure that the database and table name are valid.
 
        you may also *not* want to publish this online,
 
        although database operations are only limited to truncating
 
        and inserting 12 rows every time.
 
    */
 
    if (!isset($_GET["rss"])) : 
 
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
<head>
 
    <style type="text/css">
 
        #results table {
 
            border: solid 2px #000000;
 
            border-collapse: collpase;
 
            background-color: #fafafa;
 
        }
 
        #results td {
 
            border: solid 1px #999999;
 
        }
 
    </style>
 
    <title>MySqueaks sample code</title>
 
</head>
 
<body>
 
<pre>
 
<?php 
 
    else : 
 
    header('Content-Type: application/xml; charset=iso-8859-1');
 
    echo '<?xml version="1.0" encoding="iso-8859-1"?>';
 
?>
 
<rss version="2.0">
 
    <channel>
 
        <title>MySqueaks sample code</title>
 
        <link>http://mysqueaks.ikueb.com</link>
 
        <language>en-us</language>
 
        <pubDate><?php echo date("r"); ?></pubDate>
 
        <lastBuildDate><?php echo date("r"); ?></lastBuildDate>
 
        <generator>MySqueaks</generator>
 
        <description>
 
<?php
 
    endif;
 
 
include("class_sql.php");
 
// initialisation
 
$book = new MySqueaks(array("localhost", "root", ""), "sqx_sample", "book");
 
if ($book->Status === null) {
 
    // new table
 
    $book->PKI("book_id");
 
    $book->TypeText("book_title");
 
    $book->TypeText("book_publisher");
 
    $book->Submit();
 
    echo "Book table created.\n";
 
} else {
 
    $book->Truncate();
 
    echo "Book table truncated.\n";
 
}
 
$user = new MySqueaks(array("localhost", "root", ""), "sqx_sample", "user");
 
if ($user->Status === null) {
 
    $user->PKI("user_id");
 
    $user->TypeText("user_name");
 
    $user->TypeInteger("user_contact");
 
    $user->Submit();
 
    echo "User table created.\n";
 
} else {
 
    $user->Truncate();
 
    echo "User table truncated.\n";
 
}
 
$record = new MySqueaks(array("localhost", "root", ""), "sqx_sample", "rec");
 
if ($record->Status === null) {
 
    $record->PKI("record_id");
 
    $record->TypeChrono("record_date", SQX_DATE);
 
    $record->TypePrecision("record_price");
 
    $record->TypeInteger("record_user");
 
    $record->TypeInteger("record_book");
 
    $record->Submit();
 
    echo "Record table created.\n";
 
} else {
 
    $record->Truncate();
 
    echo "Record table truncated.\n";
 
}
 
 
// inserting sample data
 
$book->Values();
 
$book->Set(array(null, "Book 1", "ABC Publisher"));
 
$book->Set(array(null, "Book 2", "HJK Publisher"));
 
$book->Set(array(null, "Book 3", "XYZ Publisher"));
 
$book->Set(array(null, "Book 4", "SQX Publisher"));
 
$book->Submit();
 
echo "Inserting data for Book table done.\n";
 
$user->Values();
 
$user->Set(array(null, "Aaron", "12345"));
 
$user->Set(array(null, "Betty", "67890"));
 
$user->Set(array(null, "Charlie", "13579"));
 
$user->Set(array(null, "Diana", "24680"));
 
$user->Submit();
 
echo "Inserting data for User table done.\n";
 
$record->Values();
 
$record->Set(array(null, "2007-01-01", 34.20, 1, 1));
 
$record->Set(array(null, "2007-01-01", 24.50, 2, 2));
 
$record->Set(array(null, "2007-02-01", 40.10, 3, 3));
 
$record->Set(array(null, "2007-03-02", 14.90, 4, 4));
 
$record->Submit();
 
echo "Inserting data for Record table done.\n";
 
 
// retrieve records
 
$book->Join("book_id");
 
$book->Join($record->JoinTo("record_book", "record_user"));
 
$book->Join($user->JoinTo("user_id"));
 
$book->GreaterEquals("and", "record_price", 25);
 
$book->Like("or", "user_contact", "68", SQX_SKIP, SQX_SKIP, SQX_WILD_BOTH);
 
if (!isset($_GET["rss"])) {
 
    echo $book->toString(true)."</pre>\n";
 
    echo $book->Tabulate("results");
 
    echo "</body>\n</html>\n";
 
} else {
 
    // giving aliases to column name to reflect the RSS tag structure
 
    $book->Alias("book_title", "title");
 
    $book->Alias("book_id", "guid");
 
    $book->Alias("DATE_FORMAT(`record_date`, '%a, %d %M %Y %r')", "pubDate");
 
    $book->Alias("`book_publisher`", "description");
 
    $book->Alias("CONCAT(`user_name`, '@', `user_contact`, '.com')", "author");
 
    $book->Alias("'http://mysqueaks.ikueb.com'", "link");
 
    $book->Select(array("title", "guid", "pubDate", "description", "link", 
 
                        "author"));
 
    echo $book->toString()."\n\t\t</description>\n";
 
    // note that $sematic = true, so we have:
 
    // <title>Book 1</title>
 
    // instead of:
 
    // <field name="title">Book 1</field>
 
    // we've also changed the $wrapper default "result" to "item" for RSS usage
 
    echo $book->XML(1, true, "item"); 
 
    echo "\t</channel>\n</rss>\n";
 
}
 
?>
 
 |