如何使用PHP在MySQL中选择所选行?

时间:2011-10-17 19:16:00

标签: php mysql html

MySQL

如何使这些日期与开始日期和结束日期对齐或选择性地回显日期而不是让while循环回显它们?

例如,如果我可以回显“开始日期”然后是实际日期,那么就是“结束日期”,然后是日期。

基本上我怎样才能有选择地回应mySQL中的日期而不是使用循环来回显它们呢?

例如,如果我想回显第2行,我可以回显$ row 'date'(以回显第2行)

在HTML页面PHP代码:

开始日期:

结束日期:

<?php


mysql_connect("host","username","password") or die(mysql_error());
mysql_select_db("UserLogins") or die(mysql_error());

$query = "SELECT * FROM Date1"; 

$result = mysql_query($query) or die(mysql_error());


while($row = mysql_fetch_array($result)){
    echo "<li>".$row['date']."</li>";
    echo "<br />";
}

?>

4 个答案:

答案 0 :(得分:2)

听起来您需要限制查询结果。如果您只想要数据库中的某些记录,那么您应该在SQL中过滤掉您不想要的记录。

$query = "SELECT * FROM Date1 WHERE date >= ? AND date <= ?"; 

如果您使用预准备语句,则可以插入两个问号的值。

答案 1 :(得分:1)

第一个解决方案

$arr = Array();
while($row = mysql_fetch_array($result)){
    $arr[] = $row;
}

echo $arr[0]['date']; // first
echo $arr[3]['date'];
echo $arr[7]['date'];
echo $arr[count($arr)-1]['date']; // last

第二种解决方案

$first = @mysql_fetch_assoc(mysql_query("SELECT * FROM Date1 ORDER BY date ASC LIMIT1")); 
$last = @mysql_fetch_assoc(mysql_query("SELECT * FROM Date1 ORDER BY date DESC LIMIT1")); 
echo $first['date'].'<br>';
echo $last['date'];

如果您想使用第二个解决方案,请记住将索引放在date

答案 2 :(得分:0)

嗯...

<?php


mysql_connect("host","username","password") or die(mysql_error());
mysql_select_db("UserLogins") or die(mysql_error());

$query = "SELECT * FROM Date1"; 

$result = mysql_query($query) or die(mysql_error());


echo "<table border=\"0\">\n<tr><th>Start Date</th><th>End Date</th></tr>";

$startRow = true;
while($row = mysql_fetch_array($result)) {
    if($startRow) {
        echo "\n<tr><td>";
    } else {
        echo "<td>";
    }

    echo $row['date'];

    if($startRow) {
        echo "</td>";
    } else {
        echo "</td></tr>";         
    }

    $startRow = !$startRow;
}

if(!$startRow) {
    echo "</tr>";
}

echo "\n</table>\n";

?>

???

答案 3 :(得分:0)

...也

<?php


mysql_connect("host","username","password") or die(mysql_error());
mysql_select_db("UserLogins") or die(mysql_error());

$query = "SELECT min(date) as startdate, max(date) as enddate FROM Date1"; 

$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);
if($row) {
    echo "Start Date: " . $row['startdate'] . "<br />\n";
    echo "End Date: " . $row['enddate'] . "<br />\n";
}
?>

???