내가 설문 테이블의 데이터를 삭제하고 싶어 (I 적어도 10 reptation을 필요로 그 이미지를 게시 할 수 없습니다). 데이터베이스의 ERD를 게시해야하지만 사진을 게시 할 수 없습니다.
CREATE TABLE `account` (
`accountID` INT(11) NOT NULL AUTO_INCREMENT,
`accountName` VARCHAR(255) DEFAULT NULL,
`email` VARCHAR(255) DEFAULT NULL,
`username` VARCHAR(20) DEFAULT NULL,
`pass` VARCHAR(20),
`dob` DATE DEFAULT NULL,
`imagePath` VARCHAR(225) DEFAULT 'Assets/Profiles/default.jpg',
`activated` TINYINT(4) DEFAULT 0,
PRIMARY KEY (`accountID`)
);
CREATE TABLE questionnaire (
questionnaireID INT AUTO_INCREMENT NOT NULL,
accountID INT,
questionnaireTitle VARCHAR(255) DEFAULT 'untitled',
questionnaireDate TIMESTAMP NOT NULL,
questionnaireExp DATE,
answered INT,
CONSTRAINT PRIMARY KEY (questionnaireID),
CONSTRAINT FOREIGN KEY (accountID)
REFERENCES account (accountID)
);
CREATE TABLE content (
contentID INT AUTO_INCREMENT NOT NULL,
questionnaireID INT,
questionNumber INT,
mediaDetailsID INT,
question TEXT,
required TINYINT DEFAULT '0',
questionType INT,
CONSTRAINT PRIMARY KEY (contentID),
CONSTRAINT FOREIGN KEY (questionnaireID)
REFERENCES questionnaire (questionnaireID),
CONSTRAINT FOREIGN KEY (mediaDetailsID)
REFERENCES mediaDetails (mediaDetailsID)
);
CREATE TABLE choices (
choicesID INT AUTO_INCREMENT NOT NULL,
choicesText TEXT,
choicesValue INT,
contentID INT,
CONSTRAINT PRIMARY KEY (choicesID),
CONSTRAINT FOREIGN KEY (contentID)
REFERENCES content (contentID)
);
CREATE TABLE mediaDetails (
mediaDetailsID INT AUTO_INCREMENT NOT NULL,
available TINYINT,
mediaPath TEXT,
CONSTRAINT PRIMARY KEY (mediaDetailsID)
);
CREATE TABLE answerEssay (
answerEssayID INT AUTO_INCREMENT NOT NULL,
aswerEssayDate TIMESTAMP,
answer TEXT,
contentID int,
CONSTRAINT PRIMARY KEY (answerEssayID),
CONSTRAINT FOREIGN KEY (contentID) REFERENCES content (contentID)
);
AJAX를 사용하여 내가 잘, 아무것도 오류를 일하는 xhr.open("GET", "processing/questionnaire.php?do=load", false);
라고 : 그래서, 여기에 SQL이다. 내가
xhr.open("GET", "processing/questionnaire.php?do=delete&id="+id, false);
를 호출 할 때
는하지만 뭔가 미안, 잘못 돌아왔다.
이것은 questionnaire.php
include("includes/database.php");
if(isset($_GET["do"])){
if($_GET["do"] == "load"){
foreach ($account->question as $question)
{
echo "<tr>";
echo "<td><input type=\"radio\" name=\"questID\" value=\"{$question->id}\"></td>";
echo "<td>{$question->title}</td>";
echo "<td>{$question->created}</td>";
echo "<td>{$question->expired}</td>";
echo "<td>{$question->ansewered}</td>";
echo "</tr>";
}
}else if($_GET["do"] == "delete"){
/*
questionType = 0 --> question type is text
questionType = 1 --> checkbox
questionType = 2 --> radio
*/
//delete choices data from table choices
$query = "select * from content where questionnaireID={$_GET["id"]} and questionType in(1,2)";
$result = execute($query);
while($row = mysqli_fetch_assoc($result)){
$query = "delete from choices where contentID={$row["contentID"]}";
execute($query);
}
//delete answer for text question in answerEssay table
$query = "select * from content where questionnaireID={$_GET["id"]} and questionType=0";
$result = execute($query);
while($row = mysqli_fetch_assoc($result)){
$query = "delete from answerEssay where contentID={$row["contentID"]}";
execute($query);
}
//delete all media details for each question in questionnaire
$query = "select * from content where questionnaireID={$_GET["id"]}";
$result = execute($query);
while($row = mysqli_fetch_assoc($result)){
$query = "delete from mediaDetails where mediaDetailsID={$row["mediaDetailsID"]}";
execute($query);
}
//delete the questionnaire
$query = "delete from questionnaire where questionnaireID={$_GET["id"]}";
$result = execute($query);
if($result){
echo "Delete success!";
}else{
echo "Something went wrong, sorry.";
}
}
강한 개체를 삭제 (를) 대체 할 수있는 다른 방법이 있나요 ...이 삭제하는 가장 좋은 방법이지만, 작동하지 않는 생각입니까? 내 코드에 무슨 문제가 있습니까?
다른 곳으로 사진을 업로드하고 링크를 여기에 넣을 수 있습니다 .. –
모든 삭제 ('execute ($ query)')에'mysqli_error();' – Saqueib