2013-08-28 2 views
1

Я сейчас в процессе кодирования страницы поиска MySQL, и я не могу решить, как сделать так, чтобы, если нет данных, помещенных в одну форму, это будет ничего, и если есть данные в другой форме, он будет искать базу данных для этого значения.Несколько форм на одной странице - если пусто

<?PHP 
echo '<h3 class="hp-1">Kick Logs</h3><div class="wrapper"> 
<div class="logcol-1"><form name="form1" id="mainForm" method="post"enctype="multipart/form-data" action="' . $_SERVER['REQUEST_URI'] . '"> 
<input name="name" type="text" id="name" placeholder="Players Name"> 
</form>'; 
echo '<form name="form2" id="mainForm" method="post"enctype="multipart/form-data" action="' . $_SERVER['REQUEST_URI'] . '"><input name="reason" type="text" id="reason" placeholder="Kick Reason"></form>'; 
$name = mysql_real_escape_string($name); 
$reason = mysql_real_escape_string($reason); 

$kicklogname = mysql_query("SELECT * FROM `log1` WHERE `user` LIKE '%$name%'") or die(mysql_error()); 
$kicklogreason = mysql_query("SELECT * FROM `log1` WHERE `user` LIKE '%$reason%'") or die(mysql_error()); 
if($name == ""){ 
echo "You must enter a name to search"; } 
else { 
    echo '<table width="700" border="0"> 
     <tr class="listheader"> 
     <td width="100" bgcolor="#afe6ff">Username</td> 
     <td width="220" bgcolor="#afe6ff">Reason</td> 
    </tr>'; 
    while($row = mysql_fetch_array($kicklogname)) 
    { 
     echo '<tr><td bgcolor="#daf4ff" class="contentleft">'; 
     echo $row['user']; 
     echo '</td><td bgcolor="#eefaff" class="contentright">'; 
     echo $row['reason']; 
     echo '</td></tr>'; 
    } 
    echo '</table></div></div>'; 
} 
?> 
+0

Когда-либо слышал о $ _POST? – Mihai

+0

[Почему вы не должны использовать mysql_ * функции] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) – DarkBee

+0

Несколько советов: - Вместо этого используйте MYSQLi из MYSQL - вам не нужно иметь эти четыре строки HTML внутри 'echo', просто поместите его перед открывающим тегом PHP и - вам не нужно вставлять' $ _SERVER ['REQUEST_URI'] 'в действие формы. Даже не определяйте атрибут 'action', если форма должна отправлять себя на ту же страницу. – Smuuf

ответ

0

Update

К сожалению, перечитайте вопрос. Чтобы проверить несколько форм на одной странице вам нужно добавить кнопку отправки каждой форму и дать ему имя:

<?php 
if (!empty($_POST) && isset($_POST['reasonsubmit'])) { 
    echo 'Submitted reason form'; 
} 
if (!empty($_POST) && isset($_POST['namesubmit'])) { 
    echo 'Submitted name form'; 
} 
?> 

<form action="reason.php" method="post"> 
    <input type="text" name="reason" id="reason" /> 
    <input type="submit" name="reasonsubmit" /> 
</form> 
<form action="name.php" method="post"> 
    <input type="text" name="name" id="name" /> 
    <input type="submit" name="namesubmit" /> 
</form> 

В качестве альтернативы, если вы не хотите, чтобы кнопка отправки имени вы можете просто добавить скрытое поле для каждой формы, и вы получите такое же поведение.

<form action="reason.php" method="post"> 
    <input type="hidden" name="reasonsubmit" id="reasonsubmit" /> 
    <input type="text" name="reason" id="reason" /> 
    <input type="submit" /> 
</form> 
<form action="name.php" method="post"> 
    <input type="hidden" name="namesubmit" id="namesubmit" /> 
    <input type="text" name="name" id="name" /> 
    <input type="submit" /> 
</form> 
+0

Не означает ли это, что оба ящика должны быть заполнены? – user2725857

+0

Привет, мой обновленный ответ. – SeanWM