2013-04-24 5 views
4

다음 코드를 사용하여 데이터베이스에서 데이터를 성공적으로 읽고 표시 할 수 있습니다. http://pastebin.com/rjZfBWZX 또한 테이블의 각 행에 대해 삭제 단추를 생성합니다. 삭제 단추를 클릭하면 "obrisi"가 호출됩니다. 해당 행을 삭제하기로하지만 난 뭔가를 엉망 PHP는 "각 테이블 행에 대한 삭제 단추

http://pastebin.com/mrFy1i7S

나는 구문 분석 오류 받고 있어요 : 'FROM'예상치 못한 (T_STRING) 구문 오류가 여기에 S는 obrisi.php 코드입니다 : S

+0

데이터베이스의 'id'열이 기본 키이고 고유 함 – Singed

+0

두 가지 스크립트 모두 질문과 같이 구문 분석 오류가 발생하지 않습니다. – VolkerK

+0

VolkerK가 말했듯이, 구문 분석 오류가 어디에 있는지 알 수 없습니다 ... 왜 모든 공백은 있습니까? 정리해라. – boisvert

답변

7

대신에 _GET으로 시도해 보겠습니다. _게시하다.

echo "<td>" . " <input type='submit' id= '$id' . ' value='Delete' >" . "</td>"; 

에 :

echo "<td><a href='obrisi.php?id=$id'>Delete</a></td>"; 
당신의 obrisi.php 변화 라인 3에서

(아이디 설정)에서 기본 코드에서

당신은에서 라인 39 (입력)를 변경해야 :

$id = $_POST['id']; 

에 :

$id = $_GET['id']; 

마지막으로 php 태그를 닫기 전에 obrisi.php 파일 끝에 다음 행을 추가하여 기본 페이지로 다시 리디렉션하십시오.

header('location:index.php'); 

여기서 index.php 사용자가 보유한 기본 페이지의 이름입니다.

+0

물론 귀하의 버튼에 onclick 매개 변수를 추가하여 링크 대신 버튼으로 할 수 있으며 거기에 올바른 URL로 javascript로 리디렉션합니다. –

+0

고맙습니다 많은 thanpa! 지금 작동합니다 :) – Singed

1
echo "<td>" . " <input type='submit' id= '$id' . ' value='Delete' >" . "</td>"; 

여기에 몇 가지 간단한 오류가 있습니다. ($ 아이디 = 1)이 것 출력 :

<td><input type='submit' id= '1' . ' value='Delete' ></td> 

이 줄이도 잘못된 것입니다

echo '<td><input type="submit" id="' . $id . '" value="Delete" ></td>'; 

로 수정해야합니다.

echo '<form action="obrisi.php" method="post">'; 

그러나 가장 큰 문제는 게시물에 주어진 어떤 필드 ID가 없다는 것입니다 :

echo "<form action="obrisi.php" method="post">"; 

같은해야한다. 제출시 html 요소의 ID는 전송되지 않습니다. 기본적으로 HTML 구조에서 해당 요소를 식별하는 것입니다.

그리고이 제출 '버튼을 사용할 때 해당 행 폼의 범위를 제한하고 숨겨진 입력 필드를 사용하거나 thanpa가 명확하게

을 제안 같은 링크를 사용해야 할 것입니다 : 당신이 그것을 수행하려는 경우 게시물에

while ($row = mysqli_fetch_array($result)) 
{ 

$id = $row['id']; 

echo "<tr>"; 
echo '<form action="obrisi.php" method="post">'; 
echo "<td>" . $row['Ime'] . "</td>"; 
echo "<td>" . $row['Prezime'] . "</td>"; 
echo "<td>" . $row['Grad'] . "</td>"; 
echo "<td>" . $row['Drzava'] . "</td>"; 
echo "<td>" . $row['Obavijesti'] . "</td>"; 
echo "<td>" . $row['Tekst'] . "</td>"; 
echo "<td>" 
echo '<td><input type="hidden" name="id" value="' . $id . '"/><input type="submit" value="Delete" ></td>'; 
echo "</form> 
echo "</tr>"; 
} 

(하지만 난 $ _GET을 사용하여 제안 해 드릴 것)와 시작 및 스크립트의 끝에서 폼의 에코의 제거.

1

여기에서 추가 참고로, 이것이 라이브 시스템에서 사용되는 경우, obrisi에서 $ id를 확인해야합니다.PHP는 실제로 ID와 더 많은 SQL과 같은 불쾌하고 예기치 않은 것이 아니라 SQL 주입을 찾습니다.

관련 문제