-1

php、mysqlを使用しています。mysqlデータベースからテキストボックスにデータをフェッチして更新すると、たとえば学生名が「john doe」の場合、データベースにクエリを実行して値をPHPからテキストボックスに設定した後、データの半分だけが送信されます。 、テキストボックスには「John」のみが表示されます。

この問題の原因は、検出できません。

データベースには名前が完全に保存されています。

これがphpスクリプトです

編集:

$srch = mysql_escape_string($_REQUEST['srch']);

$query = mysql_query("select * from X where htno='$srch' or studname like '%$srch%' ");
$row = mysql_fetch_array($query);
$data = "";

if($row){

$data .= '<table border="0" class="data_display">
<tr>
<th>HAll Ticket No:</th><th>Category</th><th>Centercode</th>
</tr>
<tr>
<td>'.$row['htno'].'<input type="hidden" id="htno" value="'.$row['htno'].'" /></td><td>'.$row['category'].'</td><td>'.$row['centercode'].'</td>
</tr>
<tr>
<th>Student Name</th><th>Center name</th><th>Student code</th><th>Score</th>
</tr>
<tr>
<td><input type="text" class="scoretxt" id="category" value='.$row['studname'].'/></td><td>'.$row['centername'].'</td><td>'.$row['studentcode'].'</td>
<td></tr>
</table>; }

どんな助けでも大歓迎です。Tnx

4

2 に答える 2

2

学生名の前後に引用符がありません。

<input type="text" class="scoretxt" id="category" value='.$row['studname'].'/>

を生成<input type="text" class="scoretxt" id="category" value=John Doe />していますが、これは「John」としてのみ表示されます。

そのはず

<input type="text" class="scoretxt" id="category" value="'.$row['studname'].'"/>

生産<input type="text" class="scoretxt" id="category" value="John Doe" />

HTMLは非常に寛容であるため、このような小さなものを見つけるのは困難です。

于 2012-06-24T11:09:08.567 に答える
0

このコードには、問題に関連する問題はありません(ただし、SQLインジェクションとXSSの脆弱性があります)。必要なのはデバッグと呼ばれます。最初に、問題がMySQLからの戻りにないことを確認します(var_dump($ row)を使用)。すべてが正しい場合は、問題が後であると想定します。そうでない場合は、前になります。var_dump()を使用して、生徒の名前に影響を与える可能性のある場所を確認します。このコードには他に何も表示されていないので、$rowに問題がなければこの部分は機能すると思います。

于 2012-06-24T10:53:20.923 に答える