จากโค้ดนี้เป็นโค้ดการอัพเดทข้อมูลของสมาชิก แต่มันแก้ไขได้แค่คอลัมน์เดียว คือค่า 0
ไม่ทราบว่าจะต้องเขียนอย่างไรให้แก้ไขข้อมูลได้ทุกคอลัมน์ครับ
<body>
<input name="FirstName" type="text" maxlength="20" value="<?=mysql_result($dbquery,0,'FirstName')?>">
<input name="LastName" type="text" maxlength="20" value="<?=mysql_result($dbquery,0,'LastName')?>">
<input name="Telephone" type="text" maxlength="12" value="<?=mysql_result($dbquery,0,'Telephone')?>">
<input name="Email" type="text" size="30" maxlength="30" value="<?=mysql_result($dbquery,0,'Email')?>">
<textarea name="Address" cols="25" rows="2"><?=mysql_result($dbquery,0,'Address')?></textarea>
</body>
ไม่ทราบว่าจะต้องเขียนอย่างไรให้แก้ไขข้อมูลได้ทุกคอลัมน์ครับ
<body>
<input name="FirstName" type="text" maxlength="20" value="<?=mysql_result($dbquery,0,'FirstName')?>">
<input name="LastName" type="text" maxlength="20" value="<?=mysql_result($dbquery,0,'LastName')?>">
<input name="Telephone" type="text" maxlength="12" value="<?=mysql_result($dbquery,0,'Telephone')?>">
<input name="Email" type="text" size="30" maxlength="30" value="<?=mysql_result($dbquery,0,'Email')?>">
<textarea name="Address" cols="25" rows="2"><?=mysql_result($dbquery,0,'Address')?></textarea>
</body>
ไม่ค่อยเข้าใจคำถาม เนื่องจากคำสั่ง ก็น่าจะถูกต้องอยู่
mysql_result ( result, row, column );
จากโค้ดข้างบนนะครับ เวลาเราสมัครสมาชิกคนแรกแล้วเราจะแก้ไขข้อมูลส่วนตัว มันแก้ได้ครับ
แต่พอเวลาสมัครสมาชิกคนที่สอง เวลาจะแก้ไขข้อมูลส่วนตัว แต่ในโปรไฟล์ของคนที่สอง
มันจะขึ้นเป็นข้อมูลของคนแรกครับ นั่นก็คือค่า 0
<?=mysql_result($dbquery,0,'FirstName')?>
จากโค้ดที่ให้ไปผมยังหาวิฑีแก้ไขยังไม่ได้ครับ ขอความกรุณา Admin หรือผู้รู้คนอื่นๆช่วยตอบทีนะครับ
แต่พอเวลาสมัครสมาชิกคนที่สอง เวลาจะแก้ไขข้อมูลส่วนตัว แต่ในโปรไฟล์ของคนที่สอง
มันจะขึ้นเป็นข้อมูลของคนแรกครับ นั่นก็คือค่า 0
<?=mysql_result($dbquery,0,'FirstName')?>
จากโค้ดที่ให้ไปผมยังหาวิฑีแก้ไขยังไม่ได้ครับ ขอความกรุณา Admin หรือผู้รู้คนอื่นๆช่วยตอบทีนะครับ
Quotations by Comment #2จากโค้ดข้างบนนะครับ เวลาเราสมัครสมาชิกคนแรกแล้วเราจะแก้ไขข้อมูลส่วนตัว มันแก้ได้ครับ
แต่พอเวลาสมัครสมาชิกคนที่สอง เวลาจะแก้ไขข้อมูลส่วนตัว แต่ในโปรไฟล์ของคนที่สอง
มันจะขึ้นเป็นข้อมูลของคนแรกครับ นั่นก็คือค่า 0
<?=mysql_result($dbquery,0,'FirstName')?>
จากโค้ดที่ให้ไปผมยังหาวิฑีแก้ไขยังไม่ได้ครับ ขอความกรุณา Admin หรือผู้รู้คนอื่นๆช่วยตอบทีนะครับ
555+++ ข้อมูลแค่นี้คงไม่ช่วยอะไร เนื่องจากคำสั่งมันถูกต้องดีอยู่แล้ว
ที่น่าจะเป็นคือ เวลา query ได้ข้อมูล ออกมามากกว่า 1 รายการครับ
ให้ใส่ LIMIT 1 ที่ query ครับ
ส่วนนี้ใช้ในการ update ข้อมูลสมาชิกครับ
<?php
session_start();
$host='127.0.0.1';
$user='root';
$passwd='1234';
$dbname='Custom-Guitar';
mysql_connect($host,$user,$passwd) or die ("ติดต่อ host ไม่ได้");
mysql_select_db($dbname) or die ("ติดต่อฐานข้อมูลไม่ได้");
$sql="UPDATE Member SET FirstName='".$_POST['FirstName']."', LastName='".$_POST['LastName']."',Telephone='".$_POST
['Telephone']."',Email='".$_POST['Email']."',Address='".$_POST['Address']."' WHERE UserName='$SS_UserName' AND `Password`='$SS_Password'";
$dbquery=mysql_db_query($dbname,$sql);
if($dbquery)
{
echo 'Success';
} else { echo "dont't editprofile"; }
?>
<?php
session_start();
$host='127.0.0.1';
$user='root';
$passwd='1234';
$dbname='Custom-Guitar';
mysql_connect($host,$user,$passwd) or die ("ติดต่อ host ไม่ได้");
mysql_select_db($dbname) or die ("ติดต่อฐานข้อมูลไม่ได้");
$sql="UPDATE Member SET FirstName='".$_POST['FirstName']."', LastName='".$_POST['LastName']."',Telephone='".$_POST
['Telephone']."',Email='".$_POST['Email']."',Address='".$_POST['Address']."' WHERE UserName='$SS_UserName' AND `Password`='$SS_Password'";
$dbquery=mysql_db_query($dbname,$sql);
if($dbquery)
{
echo 'Success';
} else { echo "dont't editprofile"; }
?>
ส่วนอันนี้ก็คือ สาเหตุที่ทำงานไม่ปกติครับ ขอความกรุณาอีกทีนะครับ
<body>
<input name="FirstName" type="text" maxlength="20" value="<?=mysql_result($dbquery,0,'FirstName')?>">
<input name="LastName" type="text" maxlength="20" value="<?=mysql_result($dbquery,0,'LastName')?>">
<input name="Telephone" type="text" maxlength="12" value="<?=mysql_result($dbquery,0,'Telephone')?>">
<input name="Email" type="text" size="30" maxlength="30" value="<?=mysql_result($dbquery,0,'Email')?>">
<textarea name="Address" cols="25" rows="2"><?=mysql_result($dbquery,0,'Address')?></textarea>
</body>
หมายเหตุ : เปลี่ยนจากค่า 0 เป็น ค่า 1 แบบนี้
<?=mysql_result($dbquery,0,'Telephone')?> เป็น <?=mysql_result($dbquery,1,'Telephone')?>
เวลาเราสมัครสมาชิกคนแรกแล้วเราจะแก้ไขข้อมูลส่วนตัว มันแก้ได้ครับ
แต่พอเวลาสมัครสมาชิกคนที่สอง เวลาจะแก้ไขข้อมูลส่วนตัว แต่ในโปรไฟล์ของคนที่สอง
มันจะขึ้นเป็นข้อมูลของคนแรกครับ นั่นก็คือค่า 0
พอเปลี่ยนเป็นค่า 1 ค่าที่เป็น 0 ข้อมูลก็กลับมาเป็นข้อมูลของคนที่ 1
ขอความกรุณาด้วยนะครับตอนนี้ปวดหัวมากครับหาสาเหตุไม่เจอครับ
<body>
<input name="FirstName" type="text" maxlength="20" value="<?=mysql_result($dbquery,0,'FirstName')?>">
<input name="LastName" type="text" maxlength="20" value="<?=mysql_result($dbquery,0,'LastName')?>">
<input name="Telephone" type="text" maxlength="12" value="<?=mysql_result($dbquery,0,'Telephone')?>">
<input name="Email" type="text" size="30" maxlength="30" value="<?=mysql_result($dbquery,0,'Email')?>">
<textarea name="Address" cols="25" rows="2"><?=mysql_result($dbquery,0,'Address')?></textarea>
</body>
หมายเหตุ : เปลี่ยนจากค่า 0 เป็น ค่า 1 แบบนี้
<?=mysql_result($dbquery,0,'Telephone')?> เป็น <?=mysql_result($dbquery,1,'Telephone')?>
เวลาเราสมัครสมาชิกคนแรกแล้วเราจะแก้ไขข้อมูลส่วนตัว มันแก้ได้ครับ
แต่พอเวลาสมัครสมาชิกคนที่สอง เวลาจะแก้ไขข้อมูลส่วนตัว แต่ในโปรไฟล์ของคนที่สอง
มันจะขึ้นเป็นข้อมูลของคนแรกครับ นั่นก็คือค่า 0
พอเปลี่ยนเป็นค่า 1 ค่าที่เป็น 0 ข้อมูลก็กลับมาเป็นข้อมูลของคนที่ 1
ขอความกรุณาด้วยนะครับตอนนี้ปวดหัวมากครับหาสาเหตุไม่เจอครับ
ขอบคุณมากนะครับ ตอนนี้ผมแก้ไขสาเหตุได้แล้ว ผมไปเพิ่ม WHERE เข้าไปเป็นแบบนี้แล้วก็ทำงานได้ตามปกติครับ
<?
session_start();
$host='127.0.0.1';
$user='root';
$passwd='1234';
$dbname='test';
mysql_connect($host,$user,$passwd) or die ("ติดต่อ host ไม่ได้");
mysql_select_db($dbname) or die ("ติดต่อฐานข้อมูลไม่ได้");
$sql="SELECT * FROM Member WHERE UserName='$SS_UserName' AND `Password`='$SS_Password'";
$dbquery=mysql_db_query($dbname,$sql);
?>
<form action="Update.php" method="post">
<input name="FirstName" type="text" maxlength="30" value="<?=mysql_result($dbquery,0,'FirstName')?>"><br />
<input name="LastName" type="text" maxlength="30" value="<?=mysql_result($dbquery,0,'LastName')?>"><br />
<input name="Telephone" type="text" maxlength="12" value="<?=mysql_result($dbquery,0,'Telephone')?>"><br />
<input name="Email" type="text" maxlength="30" value="<?=mysql_result($dbquery,0,'Email')?>"><br />
<textarea name="Address" cols="29" rows="2" id="Address"><?=mysql_result($dbquery,0,'Address')?>
</textarea><br />
<input name="Confirm" type="submit" value="Confirm" id="Confirm">
</form>
<a href="Main.php">sign out</a>
</body>
</html>
<?
session_start();
$host='127.0.0.1';
$user='root';
$passwd='1234';
$dbname='test';
mysql_connect($host,$user,$passwd) or die ("ติดต่อ host ไม่ได้");
mysql_select_db($dbname) or die ("ติดต่อฐานข้อมูลไม่ได้");
$sql="SELECT * FROM Member WHERE UserName='$SS_UserName' AND `Password`='$SS_Password'";
$dbquery=mysql_db_query($dbname,$sql);
?>
<form action="Update.php" method="post">
<input name="FirstName" type="text" maxlength="30" value="<?=mysql_result($dbquery,0,'FirstName')?>"><br />
<input name="LastName" type="text" maxlength="30" value="<?=mysql_result($dbquery,0,'LastName')?>"><br />
<input name="Telephone" type="text" maxlength="12" value="<?=mysql_result($dbquery,0,'Telephone')?>"><br />
<input name="Email" type="text" maxlength="30" value="<?=mysql_result($dbquery,0,'Email')?>"><br />
<textarea name="Address" cols="29" rows="2" id="Address"><?=mysql_result($dbquery,0,'Address')?>
</textarea><br />
<input name="Confirm" type="submit" value="Confirm" id="Confirm">
</form>
<a href="Main.php">sign out</a>
</body>
</html>
$sql="SELECT * FROM Member WHERE UserName='$SS_UserName' AND `Password`='$SS_Password' LIMIT 1";
เหมือน เดิม .... ไม่ใช่โค้ดที่เกี่ยวข้อง
สาเหตู เธอก็รู้อยู่แล้วว่า query กี่ทีก็ได้คนแรกมาลงฟอร์มแก้ไข ดังนั้นที่ผิดก็ต้องไปดูที่ query ที่เธอไม่เคยพูดถึง
การ query คือ ต้อง query ให้ได้แค่ record เดียว ทดสอบโดยการ echo query ออกมาแล้วเอาไปทดสอบบน phpmyadmin
การ query ให้ได้ record เดียว ทำได้โดยการใส่ LIMIT 1 ต่อท้ายคำสั่งครับ
สาเหตู เธอก็รู้อยู่แล้วว่า query กี่ทีก็ได้คนแรกมาลงฟอร์มแก้ไข ดังนั้นที่ผิดก็ต้องไปดูที่ query ที่เธอไม่เคยพูดถึง
การ query คือ ต้อง query ให้ได้แค่ record เดียว ทดสอบโดยการ echo query ออกมาแล้วเอาไปทดสอบบน phpmyadmin
การ query ให้ได้ record เดียว ทำได้โดยการใส่ LIMIT 1 ต่อท้ายคำสั่งครับ