我遇到的原始问题是我没有显示东西,现在我已经剥离了所以它是基本的
$host="localhost";
$user="*";
$pass="*";
$db="*";
$con=mysqli_connect($host,$user,$pass,$db) or die ("Could not connect to database " . mysqli_connect_error($con));
$query="SELECT * FROM customers WHERE client='$tmp1'";
$results=mysqli_query($con,$query);
$row_cnt = mysqli_num_rows($results);
printf("Result set has %d rows.\n", $row_cnt);
当我使用num行时,我得到它说“结果集有0行。”
我不知道为什么我没有得到任何结果,因为查询在phpmyadmin中运行得到结果
答案 0 :(得分:1)
$con
。要将其拉入函数的可变范围,您需要添加:
function getinfo($tmp1,$tmp2)
{
global $con;
// rest of your function.
}
旁注:
这是非常非常糟糕的程序设计。您是否打算为每个想要具有默认值的输入包含此文件?从数据库中获取一次信息,将其存储在变量中,然后在输入中使用value="<?=$var?>"
。
答案 1 :(得分:0)
您没有将变量$tmp3
设置为函数的返回值。它根本不存在于函数之外。
我现在注意到,你也在函数内调用了不存在的全局变量。
您可以在函数中设置变量,如refference
function getinfo($tmp1,$tmp2, &$tmp3) {
$query = "SELECT * FROM customers WHERE client='{$tmp1}'";
$results = mysqli_query($GLOBALS["con"], $query);
while($row = mysqli_fetch_array($results)) {
$tmp3 = $row['$tmp2'];
}
}
然后致电:
getinfo("test", "title", $tmp3);
$tmp3
由该函数填充。
或者,你只是忘了设置功能的输出。
$tmp3 = getinfo("test","title");
答案 2 :(得分:0)
为什么你在属性中包含整个代码,你的函数也返回值,所以把它变成一个变量并回显到var: - 尝试
<?php
include 'function.php';
$tmp3 =getinfo("test","title");
?>
Title: <input type="text" name="title" value="<?php echo (!empty($tmp3) ? $tmp3 : ''); ?>"><br>
<?php $tmp4 = getinfo("test","background");?>
<option value="test" <?php if(!empty($tmp4) && $tmp4 == 'test'){echo 'selected = "selected"';}?>>Test</option>
<?php mysqli_close($con);?>
答案 3 :(得分:0)
应该是$tmp3 = getinfo("test","title");
而不是仅仅调用getinfo("test","title");
此外,您不需要拥有如此凌乱的HTML + PHP。在页面的开头做你的包括。例如:
<?php
include 'function.php';
$value = getinfo('test', 'title');
mysqli_close($con);
?>
Title: <input type="text" name="title" value="<?php echo $value; ?>"><br>