PHP & ile ilgili sorun

4 Cevap php

I wrote this statements but it is not work :( ... can you tell me why?

HTML:

<form action="join.php" method="post">
<label name="RoomName">Room1</label>
</form>

PHP:

$roomName = $_POST['RoomName'];
$roomID = "SELECT RoomID FROM rooms WHERE RoomName = $roomName";

EDIT:

teşekkürler ama benim iş kullanıcı oda adını düzenlemek için yeteneği yok

bu yüzden yerine metin kutusu (başka herhangi bir şey üzerinde) bir etiket oda adını görüntülemek gerekir

4 Cevap

Siz de bir <input> eleman ihtiyacı.

<input type="text" name="RoomName">

Bu şekilde değer $_POST['RoomName'] tarafından kullanılabilir. Büyük olasılıkla da bir gönderme düğmesi gerekir:

<input type="submit" value="Submit">

label sadece genellikle bir input elemanı ile etiket ilişkilendirir for işaret nitelik input elemanın {[(4) }]:

<label for="RoomName">Room1</label>
<input type="text" id="RoomName" name="RoomName">

Bunun yararı esas erişilebilirlik (ekran okuyucularını tıklayarak etiket, vb) bulunmaktadır.

HTML formları hakkında daha fazla bilgi için, bu hızlı kılavuz geçmesi: http://www.w3schools.com/html/html_forms.asp

SQL sorgusu olarak, sorunuzun yayınlanan yorumlar diğerlerini okudum. Siz de dizgeleri ve SQL injections değerleri kaçmak gerekir.

Update: düzenlemeden başına, sadece set readonly alan düzenlenebilir önlemek için bağlıyor:

<input type="text" id="RoomName" name="RoomName" value="somevalue" readonly>

ya da gizli bir giriş elemanı faydalanmak:

<input type="hidden" name="RoomName" value="somevalue">

Sizin kod yerine bu gibi görünmelidir:

<form action="join.php" method="post">
<label name="RoomName">Room Name:</label>
<input type="text" name="RoomName" value="Room 1" />
<input type="submit" value="Submit Room" />
</form>

Ayrıca, sadece SQL sorgusuna değeri ayarlanamaz. Sen mysql_fetch_assoc () işlevini kullanmanız gerekir. Bu yüzden daha fazla gibi olacaktır:

$sqlQuery = "SELECT RoomID FROM rooms WHERE RoomName = '".mysql_real_escape_string($roomName)."'";
$result = mysql_query($sqlQuery);
while ($row == mysql_fetch_assoc($result)) {
   $roomID = $row['rooms'];
   //do stuff with the current roomID
}
RoomName = $roomName"

karşı

RoomName = '$roomName'"

SQL dizeleri alıntı olmalıdır. Ayrıca, $ roomname üzerine mysql_real_escape_string () yaparak güvenli.