본문 바로가기
MySql

MySQL PHP를 통해 MySQL에서 데이터 편집

by 베이스 공부 2021. 2. 4.
반응형

MySQL 데이터베이스 내에서 개별 행을 편집 할 수있는 PHP 스크립트에 실망스러운 문제가 있습니다.

이것은 데이터베이스의 모든 행이 표시되는 파일입니다. 예상대로 작동합니다.

<table cellpadding="10">
<tr>
<td>ID</td>
<td>First Name</td>
<td>Last Name</td>
<td>E-mail</td>
<td>Phone</td>
</tr>

<?php

$username="username here";
$password="password here";
$database="database name here";

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM students";
$result=mysql_query($query);
mysql_close();

while ($row=mysql_fetch_array($result)){
echo ("<tr><td>$row[id]</td>");
echo ("<td>$row[first]</td>");
echo ("<td>$row[last]</td>");
echo ("<td>$row[email]</td>");
echo ("<td>$row[phone]</td>");


} echo "</table>"; ?>

보시다시피 각 행에는 사용자가 개별 학생의 데이터를 편집 할 수있는 "편집"링크가 있습니다. 다음은 StudentEdit.php입니다.

<?php

$username="username";
$password="password";
$database="database";

mysql_connect(localhost,$username,$password);

$student_id = $_GET[id]; 
$query = "SELECT * FROM students WHERE id = '$student_id'"; 
$result = mysql_query($query);
$row = mysql_fetch_array($result);
mysql_close();
?>

<form method="post" action="EditStudentData.php" />

<table>

<tr>
<td><input type="hidden" name="id" value="<? echo "$row[id]" ?>"></td>
</tr>

<tr>
<td>First Name:</td>
<td><input type="text" name="first" value="<? echo "$row[first]" ?>"></td>
</tr>

<tr>
<td>Last Name:</td>
<td><input type="text" name="last" value="<? echo "$row[last]" ?>"></td>
</tr>

<tr>
<td>Phone Number:</td>
<td><input type="text" name="phone" value="<? echo "$row[phone]" ?>"></td>
</tr>

<tr>
<td>E-mail:</td>
<td><input type="text" name="email" value="<?echo "$row[email]" ?>"></td>
</tr>

</table>

</form>

그러나 이것을 실행하면 다음과 같은 오류 메시지가 나타납니다.

경고 : mysql_fetch_array () : 제공된 인수는 12 행의 /home4/lukaspl1/public_html/StudentEdit.php에서 유효한 MySQL 결과 리소스가 아닙니다.

무엇이 잘못되었는지, 그리고 그것을 고치는 방법에 대한 아이디어가 있습니까?

미리 감사드립니다!

 

해결 방법

 

StudentEdit.php : 쿼리를 실행하기 전에 @mysql_select_db ($ database) 또는 die ( "Unable to select database"); 를 호출하는 것을 잊었습니다.

 

참조 페이지 https://stackoverflow.com/questions/11499287

 

 

반응형

댓글