2017-05-07 129 views
0

如何运行SELECT查询至极挑选一个ID至极我用它来删除行中的另一个表与ID,并随后删除该ID的排它自己的表?如何在PHP中的另一个SQL查询中运行SQL查询?

我迄今为止代码:

$sqel = "SELECT fldRadioCampID FROM tblradiocamp WHERE fldBestelID = '$urlIDbon' AND fldSpotnaam = '$urlDelSpotnaam'"; 
    $result = mysql_query($link, $sqel); 

if (mysql_num_rows($result) > 0) { 
    // output data of each row 
    while($row = mysql_fetch_assoc($result)) { 
     $sqeldelreg = "DELETE FROM tblradioregio WHERE fldRadiocampRegID=" . $row['fldRadioCampID']; 

    if (!mysql_query($sqeldelreg)) { 

    echo "Error: " . $sqeldelreg . "<br>" . mysql_error($link); 

} 
    } 
} else { 
} 
$sqeldel = "DELETE FROM tblradiocamp WHERE fldBestelID='$urlIDbon' AND fldSpotnaam='$urlDelSpotnaam'"; 

    if (!mysql_query($sqeldel)) { 

    echo "Error: " . $sqeldel . "<br>" . mysql_error($link); 

我觉得我的问题的意思很明显,如果不是请在下面评论下来,任何帮助表示赞赏!

+0

您将需要3个查询。首先,选择获取记录标识符。然后,删除这两个表中的每一个。 –

+0

请删除此并在转储mysql_ *函数并学习如何使用PDO和参数绑定之后启动一个新的函数。然后阅读加入。随访加入删除 – e4c5

+0

@DanBracuk,我有,首先一个SELECT查询至极我用得到的ID,然后我运行另一个查询来查找在第二表ID和删除这些行,然后是第三个要删除的ID在桌子本身。这不正确吗? –

回答

0

您可以创建程序,并调用它一次。

MYSQL

CREATE PROCEDURE `deleteRowById` (in urlDelSpotnaam varchar(64), in urlIDbon varchar(64)) 
BEGIN 
declare a int(11); 
SELECT fldRadioCampID into a FROM tblradiocamp WHERE fldBestelID = urlIDbon AND fldSpotnaam = urlDelSpotnaam; 
if a > 0 then 
DELETE FROM tblradioregio WHERE fldRadiocampRegID=a; 
DELETE FROM tblradiocamp WHERE fldRadioCampID=a; 
END IF; 
END 

PHP

<?php 

$sqel = "call deleteRowById('$urlDelSpotnaam','$urlIDbon')"; 
$result = mysql_query($link, $sqel); 
+0

我不知道这是我想要的东西,因为如果A = 0,它仍然需要从父表中删除ID。 –