从上一个查询中选择一行中的列

时间:2013-05-22 20:30:58

标签: php mysql arrays

如果这是一个简单的解决办法,我真的很抱歉,但我完全被难倒了,可能会受到临时阻挡。

无论如何,我的困境是这样的,我的网站有一个包含事件的页面,当然,我有一个事件表,其中包含以下字段:

    EventID
    EventName
    EventStart
    EventEnd
    EventDesc

现在我的第一个查询是确保收集所有尚未结束的事件。有意义吗?

我正在做for看起来像这样: for($i=0;$i<$numr;$i++) - $ numr定义为 - $numr = mysqli_num_rows($sql),您可以猜出$ sql是什么?为了安全起见:$sql = mysqli_query($link, "SELECT * FROM events WHERE EventEnd >= NOW()")

在这个for循环中,我打算创建多个<option>标记,但是有很多事件。到目前为止,它看起来很像:echo "<option id='" . $i . "' name='" . $i . "' value='" . $i . "'>

这就是我的问题所在,我知道需要获取从sql查询返回的第一行的EventName。我不确定该怎么做?我最初的想法是使用数组并在那里存储名称,但是,我并不是100%熟悉php中的数组。

你们有什么方法可以帮助我吗?我真的很抱歉,如果这只是我需要使用的基本功能或者其他东西,但我现在遇到了真正的问题。

非常感谢你们! 麦克

2 个答案:

答案 0 :(得分:0)

在for循环之外:$first name = null;

在你的循环中:

if(empty($first_name))
    $first_name = $row['EventName'];

答案 1 :(得分:0)

请参阅fetch_assoc doc

而不是

for($i=0;$i<$numr;$i++) {
    //echoing options
}

DO

while($event = $sql->fetch_assoc()) {
    echo "<option id='" . $event['EventID'] . "' value='" . $event['EventName'] . "'>";
}