Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有数据库id的动态php页面_Php_Mysql - Fatal编程技术网

具有数据库id的动态php页面

具有数据库id的动态php页面,php,mysql,Php,Mysql,您好,我正在尝试创建一个动态php页面,该页面随数据库行的id而变化 但直到现在我才知道,但它没有显示任何东西:-( 我试图从前面的问题中找到一些答案,但没有找到任何有助于我解决问题的答案 有没有人有什么好的简单的方法 <?php if (isset($_GET['id'])) { $id = $mysqli->real_escape_string($_POST['id']); $q = "SELECT * FROM `opskriftreg

您好,我正在尝试创建一个动态php页面,该页面随数据库行的id而变化

但直到现在我才知道,但它没有显示任何东西:-( 我试图从前面的问题中找到一些答案,但没有找到任何有助于我解决问题的答案

有没有人有什么好的简单的方法

<?php

    if (isset($_GET['id'])) {
        $id = $mysqli->real_escape_string($_POST['id']);
        $q = "SELECT * FROM `opskriftreg` WHERE `id` = '$term' LIMIT 1;";
        $q = $mysqli->query($q);
        if (mysqli_num_rows($q) > 0) {
            $result = mysqli_fetch_assoc($q);
            echo    "<div class=\"article\">".
                "<div class=\"title\">".$result['title']."</div>".
                "<div class=\"body\">".$result['description']."</div>".
                "<div class=\"desc\">"."Kort beskrivelse: ".$result['description']."</div>".
                "<div class=\"ingredients\">"."ingredienser: ".$result['ingredients']."</div>".
                "<div class=\"amount\">"."amount: ".$result['amount']."</div>".
                "<div class=\"guidance\">"."guidance: ".$result['guidance']."</div>".
                "<div class=\"hour\">"."hour: ".$result['hour']."</div>".
                "<div class=\"minutes\">"."minutes: ".$result['minutes']."</div>".
                "<div class=\"laktose\">"."laktose: ".$result['laktose']."</div>".
                "<div class=\"okologisk\">"."okologisk: ".$result['okologisk']."</div>".
            "</div>";
        }
        else {
            /* Article not found */
        }
    }
?>

如果还有更简单的方法,我想学习另一种方法

  • 我只包含了php代码,没有包含数据库连接。它可以工作,我已经测试过:-)
您有:

$id = $mysqli->real_escape_string($_POST['id']);
$q = "SELECT * FROM `opskriftreg` WHERE `id` = '$term' LIMIT 1;";
因此,我假设您的查询只返回零行,因为您正在丢弃
$\u POST['id']
,并可能通过文本
'$term'
字符串搜索空字符串

echo "SELECT * FROM `opskriftreg` WHERE `id` = '$term' LIMIT 1;";
注意:未定义变量:第3行D:\tmp\test.php中的术语
opskriftreg
中选择*其中
id
=''限制1

更糟糕的是,仅当存在第三个变量时才运行查询:

if (isset($_GET['id'])) {


我假设您想使用
$\u GET
变量,而不是
$term
$\u POST

我还没有测试过这一点,我更喜欢PDO而不是mysqli,但它应该会让您更接近

<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

$id = isset($_GET['id']) ? $_GET['id'] : (isset($_POST['id']) ? $_POST['id'] : false);
if ($id) {
    $stmt = $mysqli->prepare("SELECT * FROM `opskriftreg` WHERE `id` = ? LIMIT 1");
    $stmt->bind_param('i', $id);
    $stmt->execute();
    $result = $stmt->get_result()->fetch_array(MYSQLI_ASSOC);
    if ($result) {
        echo    "<div class=\"article\">".
            "<div class=\"title\">".$result['title']."</div>".
            "<div class=\"body\">".$result['description']."</div>".
            "<div class=\"desc\">"."Kort beskrivelse: ".$result['description']."</div>".
            "<div class=\"ingredients\">"."ingredienser: ".$result['ingredients']."</div>".
            "<div class=\"amount\">"."amount: ".$result['amount']."</div>".
            "<div class=\"guidance\">"."guidance: ".$result['guidance']."</div>".
            "<div class=\"hour\">"."hour: ".$result['hour']."</div>".
            "<div class=\"minutes\">"."minutes: ".$result['minutes']."</div>".
            "<div class=\"laktose\">"."laktose: ".$result['laktose']."</div>".
            "<div class=\"okologisk\">"."okologisk: ".$result['okologisk']."</div>".
        "</div>";
    }
    else {
        /* Article not found */
    }
}

你完全搞乱了变量

条件使用
$\u获取['id']

在此之后,您可以使用
$id=$_POST['id']

在SQL中,您有
id='$term'

尽量在使用变量时保持一致。我可以假设您需要将代码更新为

if (isset($_GET['id'])) {

     $statement = $mysqli->prepare("SELECT * FROM `opskriftreg` WHERE `id` = ? LIMIT 1"); 
     $statement->bind_param('i', $_GET['id']); //Replace ? above with our input, specifying ‘i’ meaning that we are passing one integer.
     $statement->execute(); //Run the query
     $result = $statement->get_result()->fetch_assoc();

     // here goes your code

您尝试将“$q”中的一个更改为另一个名称,然后查看结果。然后试试这个$q=“SELECT*FROM opskriftreg,其中id=”$term“LIMIT 1”;开始时打开错误报告。。。您似乎不太了解该语言。您正在使用
$term
,但它似乎没有在此上下文中定义。
$\u GET['id']
!=
$\u POST['id']
$id
!=
$term
,如果您
echo“从`opskriftreg`中选择*,其中`id`='$term'限制1;”,那么您是在混合OOP和过程方法你看到你想要的了吗?我上传了我的旧版本和表格。你说我不懂语言是什么意思?我有一个关于的错误报告,它没有显示任何内容。我得到一个错误:致命错误:在第14行的/home/www/.dk/work/dynamic_page.php中对非对象调用成员函数prepare()
您需要将$connection变量更改为MYSQLi连接变量返回到第1行:P现在它在dynamic_page.php?id=1处不再显示任何内容
if (isset($_GET['id'])) {

     $statement = $mysqli->prepare("SELECT * FROM `opskriftreg` WHERE `id` = ? LIMIT 1"); 
     $statement->bind_param('i', $_GET['id']); //Replace ? above with our input, specifying ‘i’ meaning that we are passing one integer.
     $statement->execute(); //Run the query
     $result = $statement->get_result()->fetch_assoc();

     // here goes your code