จากโค้ดนี้เป็นโค้ดการอัพเดทข้อมูลของสมาชิก แต่มันแก้ไขได้แค่คอลัมน์เดียว คือค่า 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>
กรกฎ วิริยะ 19 Aug 2011 07:21


ไม่ค่อยเข้าใจคำถาม เนื่องจากคำสั่ง ก็น่าจะถูกต้องอยู่



mysql_result ( result, row, column );





 


Unknown 19 Aug 2011 17:26
จากโค้ดข้างบนนะครับ เวลาเราสมัครสมาชิกคนแรกแล้วเราจะแก้ไขข้อมูลส่วนตัว มันแก้ได้ครับ

แต่พอเวลาสมัครสมาชิกคนที่สอง เวลาจะแก้ไขข้อมูลส่วนตัว แต่ในโปรไฟล์ของคนที่สอง

มันจะขึ้นเป็นข้อมูลของคนแรกครับ นั่นก็คือค่า 0



<?=mysql_result($dbquery,0,'FirstName')?>



จากโค้ดที่ให้ไปผมยังหาวิฑีแก้ไขยังไม่ได้ครับ ขอความกรุณา Admin หรือผู้รู้คนอื่นๆช่วยตอบทีนะครับ
กรกฎ วิริยะ 19 Aug 2011 19:02
Quotations by Comment #2จากโค้ดข้างบนนะครับ เวลาเราสมัครสมาชิกคนแรกแล้วเราจะแก้ไขข้อมูลส่วนตัว มันแก้ได้ครับ

แต่พอเวลาสมัครสมาชิกคนที่สอง เวลาจะแก้ไขข้อมูลส่วนตัว แต่ในโปรไฟล์ของคนที่สอง

มันจะขึ้นเป็นข้อมูลของคนแรกครับ นั่นก็คือค่า 0



<?=mysql_result($dbquery,0,'FirstName')?>



จากโค้ดที่ให้ไปผมยังหาวิฑีแก้ไขยังไม่ได้ครับ ขอความกรุณา Admin หรือผู้รู้คนอื่นๆช่วยตอบทีนะครับ


555+++ ข้อมูลแค่นี้คงไม่ช่วยอะไร เนื่องจากคำสั่งมันถูกต้องดีอยู่แล้ว

ที่น่าจะเป็นคือ เวลา query ได้ข้อมูล ออกมามากกว่า 1 รายการครับ

ให้ใส่ LIMIT 1 ที่ query ครับ



Unknown 19 Aug 2011 19:45
ส่วนนี้ใช้ในการ 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";  }

?>
Unknown 19 Aug 2011 19:53
ส่วนอันนี้ก็คือ สาเหตุที่ทำงานไม่ปกติครับ ขอความกรุณาอีกทีนะครับ



<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





ขอความกรุณาด้วยนะครับตอนนี้ปวดหัวมากครับหาสาเหตุไม่เจอครับ
Unknown 20 Aug 2011 00:19
ขอบคุณมากนะครับ ตอนนี้ผมแก้ไขสาเหตุได้แล้ว ผมไปเพิ่ม 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>

กรกฎ วิริยะ 20 Aug 2011 07:58
$sql="SELECT * FROM Member WHERE UserName='$SS_UserName' AND `Password`='$SS_Password' LIMIT 1";

กรกฎ วิริยะ 20 Aug 2011 07:59
เหมือน เดิม .... ไม่ใช่โค้ดที่เกี่ยวข้อง



สาเหตู เธอก็รู้อยู่แล้วว่า query กี่ทีก็ได้คนแรกมาลงฟอร์มแก้ไข ดังนั้นที่ผิดก็ต้องไปดูที่ query ที่เธอไม่เคยพูดถึง



การ query คือ ต้อง query ให้ได้แค่ record เดียว ทดสอบโดยการ echo query ออกมาแล้วเอาไปทดสอบบน phpmyadmin



การ query ให้ได้ record เดียว ทำได้โดยการใส่ LIMIT 1 ต่อท้ายคำสั่งครับ