好的,所以我尝试创建一个自定义函数,该函数将为最终用户在iframe中回显网站网址。
该脚本必须检查用户是否已经查看过该站点,如果已经看到该站点,则不再显示该站点,而是从数据库中获取另一个站点url等。
到目前为止,这是我想出的:
function get_urls() {
require 'config.php';
global $con;
global $currentUsername;
$con = mysqli_connect($hostname, $dbusername, $dbpassword, $dbname);
$query = "SELECT site_url FROM sites WHERE site_url IS NOT NULL";
$result = mysqli_query($con, $query);
// Get all the site urls into one array
$siteUrls = array();
$index = 0;
while($row = mysqli_fetch_assoc($result)) {
$siteUrls[$index] = $row;
$index++;
}
$query2 = "SELECT site_url FROM views WHERE user = '$currentUsername' AND site_url IS NOT NULL";
$result2 = mysqli_query($con, $query2);
// Get urls the user has already seen into another array
$seenUrls = array();
$index = 0;
while($row2 = mysqli_fetch_assoc($result2)) {
$seenUrls[$index] = $row2;
$index++;
}
// Compare the two arrays and create yet another array of urls to actually show
$urlsToShow = array_diff($siteUrls, $seenUrls);
if (!empty($urlsToShow)) {
// Echo the url to show for the iframe within browse.php and add an entry to the database that the user has seen this site
foreach ($urlsToShow as $urlToShow) {
echo $urlToShow;
$query = "INSERT INTO views VALUES ('', '$currentUsername', '$urlToShow')";
mysqli_query($con, $query);
break;
}
}
// Show the allSeen file when all the ads are seen
else {echo 'includes/allSeen.php';}
mysqli_free_result($result);
mysqli_close($con);
}
我目前发现了两个错误。首先,$ siteUrls和$ seenUrls都可以,但是当我使用进行比较时,array_diff
它将返回一个空数组。
其次,脚本不会将站点url写入数据库,因为$urlToShow
是数组而不是单个url吗?
我认为问题出在您的代码中,您正在创建$ siteUrls,$
seenUrls数组。mysqli_fetch_assoc()函数将为您提供结果行作为关联数组。因此,如果您想在while循环中更改某些代码。请修改
while($row = mysqli_fetch_assoc($result)) {
$siteUrls[$index] = $row;
$index++;
}
到
while($row = mysqli_fetch_assoc($result)) {
$siteUrls[$index] = $row['site_url'];
$index++;
}
并且在第二个while循环中。改变这个
while($row2 = mysqli_fetch_assoc($result2)) {
$seenUrls[$index] = $row2;
$index++;
}
到
while($row2 = mysqli_fetch_assoc($result2)) {
$seenUrls[$index] = $row2['site_url'];
$index++;
并尝试
问题内容: 我是PHP的新手,所以我的功能有一个小问题。我有这行代码: 无论如何,当我尝试这段代码时,我总是收到一条错误消息,指出第11行(代码的粗体部分)有错误,并且没有回显任何变量。我猜它给了我这个错误,因为我的变量没有在函数内部定义,但是我需要在函数外部定义它,所以有办法吗? 问题答案: 这是因为您正在函数内部使用变量(仅存在于全局范围内)。 有关更多信息,请参见PHP手册页上的变量范围。
本文向大家介绍php自定义urlencode,urldecode函数实例,包括了php自定义urlencode,urldecode函数实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php自定义urlencode,urldecode函数。分享给大家供大家参考。具体如下: 希望本文所述对大家的php程序设计有所帮助。
我做了这个自定义函数,并把它放在全局之外,这通常会工作。我也试着在主异步木偶函数中移动它,但也不起作用。这是一个简单的函数。在每个page evaluate函数中,我调用它并传递选择器。但是,它的说法没有定义和promise拒绝,这是奇怪的,因为函数不是promise....请帮助 我尝试将函数转换为异步函数,添加了一个新的参数页。然后,我将async添加到我的评估函数中,然后将puppeteer
XQuery提供编写自定义函数的功能。 下面列出了创建自定义函数的准则。 使用关键字来定义函数。 使用当前XML架构中定义的数据类型 将函数体包含在花括号内。 使用XML命名空间前缀函数的名称。 创建自定义函数时使用以下语法。 语法 示例 以下示例显示如何在XQuery中创建用户定义的函数。 XQuery表达式 输出结果 - 验证结果 要测试上述函数,用上面的XQuery表达式替换books.xq
我在理解group_by如何在tidyverse中工作时遗漏了一些东西。示例将阐明: 我已经创建了下面的函数,它采用很少的参数,并计算tibble内部的最佳权重(可能不是最漂亮的,但似乎工作): 当我在tibble中只有一个组时,这个函数可以很好地工作。我创建函数的方法是尝试通过在一个函数上进行测试来实现它,希望在我稍后对数据进行切片时它会起作用。 然后,我希望可以使用mutate为我的多个组创建
2. 自定义函数 我们不仅可以调用C标准库提供的函数,也可以定义自己的函数,事实上我们已经这么做了:我们定义了main函数。例如: int main(void) { int hour = 11; int minute = 59; printf("%d and %d hours\n", hour, minute / 60); return 0; } main函数的特殊之处在于执行程序时它自动