Our query to display all of the bios looks like this:
Code: Select all
$qry = "SELECT * FROM bios WHERE status = 'active' order by `last_name` ASC";Moderator: General Moderators
Code: Select all
$qry = "SELECT * FROM bios WHERE status = 'active' order by `last_name` ASC";Code: Select all
<?php
$aryBio = FALSE;
$intNextID = FALSE;
$intPrevID = FALSE;
$rsThisOne = mysql_query('SELECT * FROM `bios` WHERE `status` = "active" AND `id` = ' $intBioID);
if ($rsThisOne && mysql_num_rows($rsTHisOne)>0) {
$aryBio = mysql_fetch_assoc($rsThisOne);
mysql_free_result($rsThisOne);
}
if ($aryBio) {
$strMresLastName = mysql_real_escape_string($aryBio['last_name']);
$rsNextOne = mysql_query('SELECT `id` FROM `bios` WHERE `status`="active"` AND `last_name`>"'.$strMresLastName.'" LIMIT 1');
if ($rsNextOne && mysql_num_rows($rsNextOne) > 0) {
$intNextID = mysql_result($rsNextOne,0);
mysql_free_result($rsNextOne);
};
$rsPrevOne = mysql_query('SELECT `id` FROM `bios` WHERE `status`="active"` AND `last_name`<"'.$strMresLastName.'" LIMIT 1');
if ($rsPrevOne && mysql_num_rows($rsPrevOne) > 0) {
$intPrevID = mysql_result($rsPrevOne,0);
mysql_free_result($rsPrevOne);
};
}
?>Code: Select all
$aryBio = FALSE;
$intNextID = FALSE;
$intPrevID = FALSE;
$rsThisOne = mysql_query('SELECT * FROM `bios` WHERE `status` = "active" AND `id` = "$id"');
if ($rsThisOne && mysql_num_rows($rsTHisOne)>0) {
$aryBio = mysql_fetch_assoc($rsThisOne);
mysql_free_result($rsThisOne);
}
if ($aryBio) {
$strMresLastName = mysql_real_escape_string($aryBio['last_name']);
$rsNextOne = mysql_query('SELECT `id` FROM `bios` WHERE `status`="active" AND `last_name`>"$strMresLastName" LIMIT 1');
if ($rsNextOne && mysql_num_rows($rsNextOne) > 0) {
$intNextID = mysql_result($rsNextOne,0);
mysql_free_result($rsNextOne);
};
$rsPrevOne = mysql_query('SELECT `id` FROM `bios` WHERE `status`="active" AND `last_name`<"$strMresLastName" LIMIT 1');
if ($rsPrevOne && mysql_num_rows($rsPrevOne) > 0) {
$intPrevID = mysql_result($rsPrevOne,0);
mysql_free_result($rsPrevOne);
};
}Code: Select all
SELECT * FROM `bios` WHERE `status` = "active" AND `id` = "$id"Code: Select all
$rsThisOne = mysql_query('SELECT * FROM `bios` WHERE `status` = "active" AND `id` = ' $id);Code: Select all
$aryBio = FALSE;
$intNextID = FALSE;
$intPrevID = FALSE;
$rsThisOne = mysql_query('SELECT * FROM `bios` WHERE `status` = "active" AND `id` = "'.$id.'"');
if ($rsThisOne && mysql_num_rows($rsTHisOne)>0) {
$aryBio = mysql_fetch_assoc($rsThisOne);
mysql_free_result($rsThisOne);
}
if ($aryBio) {
$strMresLastName = mysql_real_escape_string($aryBio['last_name']);
$rsNextOne = mysql_query('SELECT `id` FROM `bios` WHERE `status` = "active" AND `last_name` > "'.$strMresLastName.'" LIMIT 1');
if ($rsNextOne && mysql_num_rows($rsNextOne) > 0) {
$intNextID = mysql_result($rsNextOne,0);
mysql_free_result($rsNextOne);
};
$rsPrevOne = mysql_query('SELECT `id` FROM `bios` WHERE `status` = "active" AND `last_name` < "'.$strMresLastName.'" LIMIT 1');
if ($rsPrevOne && mysql_num_rows($rsPrevOne) > 0) {
$intPrevID = mysql_result($rsPrevOne,0);
mysql_free_result($rsPrevOne);
};
}Code: Select all
$sql = "SELECT * FROM `bios` WHERE `status` = 'active' AND `id` = $id";
$rsThisOne = mysql_query($sql);
echo "SQL=$sql, errmsg=" . mysql_error() . "<br/>\n";
$sql = "SELECT `id` FROM `bios` WHERE `status` = 'active' AND `last_name` > '$strMresLastName' LIMIT 1";
$rsNextOne = mysql_query($sql);
echo "SQL=$sql, errmsg=" . mysql_error() . "<br/>\n";
$sql = "SELECT `id` FROM `bios` WHERE `status` = 'active' AND `last_name` < '$strMresLastName' LIMIT 1";
$rsPrevOne = mysql_query($sql);
echo "SQL=$sql, errmsg=" . mysql_error() . "<br/>\n";This made me curious as I have always used both. So I just looked it up. By default you can use single or double quotes, however it is possible to start up mysqd with a setting that will tell it that a double quote acts like a backtick (From: http://dev.mysql.com/doc/refman/5.0/en/ ... nsi_quotes )Christopher wrote:The MySQL manual always shows single quotes in SQL examples so I think single quotes are the SQL standard.
Code: Select all
SELECT "field1" FROM "tablename" WHERE "field2" = 'text value' Code: Select all
$query1 = "SELECT * FROM bios WHERE status = 'active' order by `last_name` ASC";
$result1=mysql_query($query1) or die(mysql_error());
$fetch = mysql_fetch_array($result1);
while(is_array($fetch)) {
$term_array[] = $fetch['id'];
$fetch = mysql_fetch_array($result1);
}
while(list($k,$v)=each($term_array)){ if($id==$v){$pk=$k-1;$nk=$k+1; }}
reset($term_array);while(list($k,$v)=each($term_array)){if($k==$pk){ $intPrevID = $v; }}
reset($term_array);while(list($k,$v)=each($term_array)){if($k==$nk){ $intNextID = $v; }}
if (empty($intPrevID)) { $intPrevID = end($term_array); } else { $intPrevID = $intPrevID; }
if (empty($intNextID)) { $intNextID = reset($term_array); } else { $intNextID = $intNextID; }