Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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
Php 如何定义特定列来自哪个表?_Php_Mysql_Sql_Mysqli - Fatal编程技术网

Php 如何定义特定列来自哪个表?

Php 如何定义特定列来自哪个表?,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我制作了一个页面,可以编辑每家网店每篇文章的价格。它已经拥有的价格在文本字段中,可以更改为用户想要的任何价格。然后用户点击编辑Wijzigen是荷兰语的编辑按钮,在按下它之前,它应该更改为文本字段中的任何内容。 但是我在更新查询中遇到了一些麻烦,因为我需要给它一些ID来选择正确的查询。而且,正如您在源代码中看到的,在启动while循环之后,我无法从正确的表中指定正确的ID。 如果您能帮助我完成我需要更改、添加或删除的内容,我将不胜感激 <?php include 'inc/inc.php

我制作了一个页面,可以编辑每家网店每篇文章的价格。它已经拥有的价格在文本字段中,可以更改为用户想要的任何价格。然后用户点击编辑Wijzigen是荷兰语的编辑按钮,在按下它之前,它应该更改为文本字段中的任何内容。 但是我在更新查询中遇到了一些麻烦,因为我需要给它一些ID来选择正确的查询。而且,正如您在源代码中看到的,在启动while循环之后,我无法从正确的表中指定正确的ID。 如果您能帮助我完成我需要更改、添加或删除的内容,我将不胜感激

<?php

include 'inc/inc.php';

$artikel = mysqli_query($mysql, "SELECT a.Artikel_ID, a.Productnaam, aw.Artikel_ID, aw.Webshop_ID, aw.Prijs, w.Webshop_ID, w.Shopnaam FROM artikel a, artikel_webshop aw, webshops w WHERE a.Artikel_ID = aw.Artikel_ID AND aw.Webshop_ID = w.Webshop_ID GROUP BY aw.Webshop_ID, aw.Artikel_ID");

echo '<table id="specialtable"><tr style="background-color:#F8F8F8;"><td>Productnaam</td><td>Webshop</td><td>Prijs</td><td>Wijzigen</td></tr>';

$i = 0;
$j = 1;

while($artikelR = mysqli_fetch_assoc($artikel)) {
    $artikel_id = $artikelR['Artikel_ID'];
    $webshop_id = $artikelR['Webshop_ID'];
    echo '<form method="post">';

    if($i == 0){
        echo '<tr style="background-color:#DDD;">';
        $i = $i + 1;
    }else{
        echo '<tr style="background-color:#F8F8F8;">';
        $i = $i - 1;
    }

    echo '<td>' . $artikelR['Productnaam']. '</td><td>' . $artikelR['Shopnaam'] . '</td><td>&euro; <input type="text" name="' . $j . '" value="' . $artikelR['Prijs']. '"></td>';
    echo '<td><input type="submit" name="' . $j . '" value="Wijzigen"></td></tr></form>';
    $jNew = $_POST['' . $j . ''];
    $j++;
    $test = $_POST['' . $j . ''];

    if(isset($test)) {
        $sql = mysqli_query($mysql, "
        UPDATE artikel_webshop
        SET Prijs = '" . $jNew . "'
        WHERE Artikel_ID = '$artikel_id'
        AND Webshop_ID = '$webshop_id'");
        echo 'U heeft succesvol de prijs van het artikel ' . $artikelR['Productnaam'] . ' van de webshop ' . $artikelR['Shopnaam'] . ' gewijzigd.<br><br>';
        $url = 'prijsWij.php';
        echo '<meta http-equiv="refresh" content="4;URL=' . $url . '">';
    }
}

echo '</table></form>';

?>
编辑 我终于成功了。我不擅长解释,所以我只添加新代码:

<?php

include 'inc/inc.php';

$artikel = mysqli_query($mysql, "
SELECT a.Artikel_ID, a.Productnaam, aw.Artikel_ID as awa_id, aw.Webshop_ID as aww_id, aw.Prijs, w.Webshop_ID, w.Shopnaam
FROM artikel a, artikel_webshop aw, webshops w
WHERE a.Artikel_ID = aw.Artikel_ID
AND aw.Webshop_ID = w.Webshop_ID");
echo '<table id="specialtable"><tr style="background-color:#F8F8F8;"><td>Productnaam</td><td>Webshop</td><td>Prijs</td><td>Wijzigen</td></tr>';
$i = 0;
$j = 1;
while($artikelR = mysqli_fetch_assoc($artikel)){
    $artikel_id = $artikelR['awa_id'];
    $webshop_id = $artikelR['aww_id'];
    echo '<form method="post">';
    if($i == 0){
        echo '<tr style="background-color:#DDD;">';
        $i = $i + 1;
    }else{
        echo '<tr style="background-color:#F8F8F8;">';
        $i = $i - 1;
    }
    echo '<td>' . $artikelR['Productnaam']. '</td><td>' . $artikelR['Shopnaam'] . '</td>';
    echo '<td>&euro; <input type="text" name="prijsTest" value="' . $artikelR['Prijs']. '"></td>';
    echo '<td><input type="submit" name="' . $j . '" value="Wijzigen"></td></tr></form>';
    $kNew = $_POST['prijsTest'];
    $test = $_POST['' . $j . ''];
    $j = $j + 1;
    if(isset($test)){
        $sql = mysqli_query($mysql, "
            UPDATE artikel_webshop
            SET Prijs = " . $kNew . "
            WHERE Artikel_ID = '$artikel_id'
            AND Webshop_ID = '$webshop_id'");
        echo 'U heeft succesvol de prijs van het artikel ' . $artikelR['Productnaam'] . ' van de webshop ' . $artikelR['Shopnaam'] . ' gewijzigd.<br><br>';
        $url = 'prijsWij.php';
        echo '<meta http-equiv="refresh" content="4;URL=' . $url . '">';
    }
}

echo '</table></form>';

?>

为了知道更新了哪篇文章,您需要在表单中跟踪它,以便在提交表单时能够更新正确的文章

似乎每篇文章都有一个表格。在这种情况下,这很容易。生成表单时,添加包含项目ID的隐藏输入:

<input type="hidden" name="article_id" value="<?php echo $articleId; ?>"/>

提交表单时,商品ID将与新价格一起发布。您可以通过$\u POST['article\u id']检索它。然后,您可以在MySQL查询中使用此变量来更新正确的文章

首先,我感谢你的帮助。其次,这是我面临的问题。我得给它两个ID来追踪它。我这么说是因为,在数据库中,在artikel_webshop表中,第一列是artikel_ID,第二列是webshop_ID,它们总是有相同的ID,但使用顺序不同。例如,第1行有Artikel_ID 2和Webshop_ID 4,第2行有Artikel_ID 3和Webshop_ID 4,第3行有2和5。如果我想跟踪正确的一个,我就得买两个跟踪器,否则我的$j就行了。谢谢你的帮助。不幸的是,我已经尝试过了,但我无法让它发挥作用。正如您现在看到的,我的代码中确实有您的建议。我只是用错了方法。非常感谢。
<input type="hidden" name="article_id" value="<?php echo $articleId; ?>"/>