我想显示多行信息。在不更改我的大部分代码的情况下,如何回显我的网页上有user_id_offerer
='$ offerer'的多行。我确实回应了mysql查询,我得到了资源ID#14的结果,我理解while循环是必要的,但似乎mysql存在问题。我该如何解决这个问题?
澄清:当我使用while循环运行代码时,我收到了第一行的无限循环。我没有收到user_id_offerer
='offerer'的每一行。如何解决这个问题,而不必重新编写代码。
function ergo_data ($offerer) {
$data = array();
$offerer = (int)$offerer;
$func_num_args = func_num_args();
$func_get_args = func_get_args();
if ($func_num_args > 1) {
unset($func_get_args[0]);
$fields ='`' . implode ('`, `', $func_get_args) . '`';
$data = mysql_fetch_assoc (mysql_query("SELECT $fields FROM `ergo` WHERE `user_id_offerer` = '$offerer'"));
return $data;
}
}
if (logged_in() === true) {
$session_user_id = $_SESSION['user_id'];
$ergo_data = ergo_data($session_user_id, 'primary_key', 'user_id_offerer', 'user_id_seeker', 'ergo', 'ergo_time_submitted');
}
echo $ergo_data['ergo'] . '<br>';
echo username_from_user_id($ergo_data['user_id_offerer']) . '<br>';
echo username_from_user_id($ergo_data['user_id_seeker']) . '<br>';
echo $ergo_data['ergo_time_submitted'];`
答案 0 :(得分:0)
我认为你需要从你的ergo_data()函数返回mysql_query的结果(而不是mysql_fetch_assoc的结果),然后在循环中调用mysql_fetch_assoc:
// inside ergo_data(), change
// $data = mysql_fetch_assoc (mysql_query("SE ...
// to:
function ergo_data ($offerer) {
...
return mysql_query("SELECT $fields FROM `ergo`....");
}
...
if (logged_in() === true) {
$session_user_id = $_SESSION['user_id'];
$query_result = ergo_data($session_user_id, 'primary_key', 'user_id_offerer', 'user_id_seeker', 'ergo', 'ergo_time_submitted');
while($ergo_data = mysql_fetch_assoc($query_result)) {
echo $ergo_data['ergo'] . '<br>';
echo username_from_user_id($ergo_data['user_id_offerer']) . '<br>';
echo username_from_user_id($ergo_data['user_id_seeker']) . '<br>';
echo $ergo_data['ergo_time_submitted'];
}
}