我对数据库有问题。我想在页面加载后添加大约10行新行。它应该检查是否有一个id为的项目(实际上正在加载)。如果不是,则添加具有不同标记ID的该ID中的10个。

$sprawdz = "SELECT id_artykulow FROM tag_art WHERE id_artykulow='".$_GET['id']."' " ;
$miasto = mysql_query($sprawdz);
$a = mysql_num_rows($miasto);
while ($a<=10){
$zm = "SELECT id FROM tag_content ORDER BY RAND() LIMIT 1";
$sw = mysql_query($zm);
while($row3=mysql_fetch_array($sw)){
$zmienna = "INSERT INTO tag_art(id_artykulow, id_tagow) VALUES ('".$_GET['id']."', '".$row3['id']."' ) ";
$cokolwiek = mysql_query($zmienna);
}
$a++;
}

有两张桌子。一个标签内容的id(标签的),另一个标签艺术的id(文章的id)和id(标签内容的id)
不知道为什么,但它没有添加10行(例如,它应该是10 id_Artykulow=10,具有不同的id_Tagow)。怎么解决?
如果你需要更多的信息(比如更多的代码等),请告诉我。

最佳答案

为什么有两个while循环?
你就不能换个

while ($a<=10){
$zm = "SELECT id FROM tag_content ORDER BY RAND() LIMIT 1";

具有
if ($a<=10){
$zm = "SELECT id FROM tag_content ORDER BY RAND() LIMIT " . (10-$a);

或者让数据库通过以下方式完成所有工作:
$query = "INSERT INTO tag_art(id_artykulow, id_tagow) SELECT '".$_GET['id']."', id  FROM tag_content ORDER BY RAND() LIMIT " . (10-$a);

(我还建议对sql注入、mysql_real_escape_string()进行保护)

10-07 13:18
查看更多