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