【问题标题】:Loop through database for a particular record and show results - PHP遍历数据库以获取特定记录并显示结果 - PHP
【发布时间】:2014-10-11 12:50:54
【问题描述】:

我正在寻找一种方法来遍历数据库并在 html 页面中显示结果,我实际上是在为一个小项目创建一个假电子邮件系统。

所以我有一个表名“SENDS”,其中包含 5 列 ID、Mailtext、Touser、Subject、Fromuser。 我想做的是当用户登录系统连接到数据库并选择所有内容时 from SENDS where touser='$email' -$email 在用户登录时定义 - 并显示在 html div 中

<div class="oubx">
  <div class="inbx">
   <span class="from"></span>
   <span class="subject"></span>
   <span class="mailtext"></span>
  </div>
 </div>

.oubx {
	height:27px; width:800px;
	border:1px solid black;
	margin-top:;
	margin-left:80px;
	float:left;
	background-color:white;
}

.inbx {
	height:22px; width:700px;
	border:1px solid black;
	margin-top:1px;
	margin-left:45px;
	background-color:white;
	font-family:sans-serif;
	font-weight:bold;
	font-size:16px;
	color:#808080;
	float:left;
}

from 当然会告诉它来自谁

主题是主题

mailtext 是邮件的内容(它是隐藏的,当然 jQ 会在点击后处理它)

我使用过 mysqli_num_rows、mysqli_fetch_array、for 循环、foreach 等,但我似乎无法理解它,我很难弄清楚如何逐步设置或步骤是什么。请帮忙 :) 谢谢。

$connectDB = mysqli_connect("host","root","","db");

$touser = mysqli_query($connectDB, "select * from sends where touser='$email'");
$to_numrows = mysqli_num_rows($touser);
$to_fetch = mysqli_fetch_array($touser);

//printing of html code = how many rows  
$ib = '<div class="oubx"><div class="inbx"><span class="from">'.$value.'</span><span class="subject">'.$value.'</span></div></div>';
for ($i = 0; $i < $to_numrows; $i++) {
 echo $ib;
}

其余的工作正在进行中..

【问题讨论】:

  • 嘿嘿!你的服务器端代码在哪里? (用于连接数据库、获取结果的 PHP 代码……)
  • 这真的很糟糕,我很惭愧把它放在这里,度过了糟糕的一天

标签: php html mysql loops


【解决方案1】:

试试这个,

$connectDB = mysqli_connect("host","root","","db");

$touser = mysqli_query($connectDB, "select * from sends where touser = '$email'");
$all_rows = mysqli_fetch_all($touser, MYSQLI_ASSOC);

$ib = '';

foreach($all_rows as $row) {  
    $ib .= '<div class="oubx">'
         . '<div class="inbx">' 
         . '<span class="from">' . $row['Fromuser'] . '</span>'
         . '<span class="subject">' . $row['Subject'] . '</span>'
         . '</div>'
         . '</div>';
}

echo $ib;

1- mysqli_fetch_all 会将所有结果行提取到 PHP 数组中
2- 我们使用 foreach 循环遍历它(无需知道行数)
3- 对于每一行,我们将 HTML 附加到最初设置为空字符串的 $ib

希望对你有帮助。

【讨论】:

  • 很棒,但它一直给我 - 注意:未定义的索引:C:\wamp\www\------\eifhfak_m.php 中的 Fromuser 在第 115 行- -注意:未定义的索引:第 116 行 C:\wamp\www\------\eifhfak_m.php 中的主题-我想知道为什么会这样,尽管代码看起来不错,我尝试使用 isset()。
  • @Aiden 那么,确切的字段名称大小写是什么?
  • @Aiden 我已经更新了答案(参见mysql_fetch_all 声明)。
  • @php_dev 太棒了,虽然我用 'MYSQLI_NUM' 尝试过,但它现在可以完美运行,但现在我知道为什么它不起作用了。与此同时,我想出了这个:$query = "select fromuser,subject from sends where touser='$email'"; $result = $connectDB-&gt;query($query); if ($result = mysqli_query($connectDB, $query)) { // fetch associative array while ($row = mysqli_fetch_row($result)) { printf ("%s (%s)&lt;br&gt;", $row[0], $row[1]); } } 这也很好用,无论如何谢谢 :) 帮了大忙!
【解决方案2】:

将查询结果放入变量中:

while ($row = $touser->fetch_array()) {
  $rows[] = $row;
}

并用循环对其进行迭代:

foreach ($rows as $row) {
  /* show appropriate html here */
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多