У меня есть столбец, который я хочу сортировать. Позвольте мне объяснить, что делает код в первую очередь.Таблица сортировки, созданная PHP, не может использовать запрос для сортировки
Как вы можете видеть, существует три оператора выбора для трех таблиц и из них (имена таблиц указаны в коде). Первый запрос выбирает данные из таблицы, в которых я назначаю полученные данные из столбца id
в $device_id
.
Второй запрос выбирает данные из другой таблицы в соответствии со значением $device_id
(только одно значение). Это вернет несколько идентификаторов платы (несколько значений). Если строки возвращены, будет создана таблица.
В этой таблице выполняется третий запрос для проверки каждой платы в третьей таблице ($table_tester_info
). Если board_id существует, он будет отображаться. Пример. Если в списке 40 файлов, и из 40 только 20 возвращенных строк, строки будут отображаться в таблице.
Теперь вот в чем проблема. Я хочу сортировать таблицу по столбцу в $table_tester_info
(третья таблица) однако, я могу использовать только ORDER BY
во втором запросе. Это не проблема, но я хочу сортировать по column in $table_tester_info
, а не $table_tester_config
(вторая таблица).
Я использую jQuery, но я не хочу использовать какие-либо плагины для сортировки элементов DOM в HTML, если нет другого пути (но я уверен, что существует много способов, я просто не знаю Это). Я пробовал сортировать массив-ассоциированный (?) $tester_name
или, скорее, $final_row['tester_name']
, который был назначен ему.
Curerntly Моя таблица не сортируется, когда я добавляю ORDER BY
в третьем запросе (который я знаю неправильно). Любая помощь по этому поводу?
<?php
// Define database parameters
DEFINE ('DB_USER' ,'iqwdewqe');
DEFINE ('DB_PASSWORD', 'iqadeaqwe');
DEFINE ('DB_HOST', 'qadewe');
DEFINE ('DB_NAME', 'Tqweqwe');
// Connect to database
@mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) OR die ('Could not connect'
.'to Database: '. mysql_error());
@mysql_select_db (DB_NAME) OR die ('Could not select the Database: '. mysql_error());
function searchDevice($device_name, $tester_type)
{
$table_device = "TBL_DEVICE_LIST";
$table_tester_config = "TBL_TESTER_CONFIG";
$table_tester_info = "TBL_TESTER_INFO";
$query_string = "SELECT * FROM $table_device WHERE device = '$device_name'
AND tester_type = '$tester_type'";
$device_result = @mysql_query($query_string) or die (mysql_error());
$device_row = mysql_num_rows($device_result);
if($device_row)
{
$device_row = mysql_fetch_array($device_result);
$device_id = $device_row['id'];
// echo "Device ID: $device_id <br>";
$query_string = "SELECT * FROM $table_tester_config WHERE device_id = '$device_id'";
$config_result = @mysql_query($query_string) or die(mysql_error());
$config_row = mysql_num_rows($config_result);
if($config_row)
{
while($config_row = mysql_fetch_assoc($config_result))
{
$board_id = $config_row['board_id'];
$oboard = $config_row['configuration'];
//echo "Board ID: $board_id <br>";
//Query to check if board_id exists,
if exists then display value in while loop
$query_string = "SELECT * FROM $table_tester_info
WHERE board_id = '$board_id' ORDER BY tester_name";
$final_result = @mysql_query($query_string) or die(mysql_error());
$final_row = mysql_num_rows($final_result);
if($final_row)
{
echo "<table border='1'>";
echo "<tr>
<th>Board ID</th>
<th>Tester Name</th>
<th>Board Name</th>
<th>Configuration</th>
<th>Log Created</th>
<th>New</th>
</tr>";
while($final_row = mysql_fetch_assoc($final_result))
{
$board_id = $final_row['board_id'];
$tester_name = $final_row['tester_name'];
$board_name = $final_row['board_name'];
$config = $final_row['config'];
$log_created = $final_row['log_created'];
echo "<tr>
<td>$board_id</td>
<td>$tester_name</td>
<td>$board_name</td>
<td>$config</td>
<td>$log_created</td>
<td>$oboard</td>
</tr>";
}
}
}
echo "</table>";
}
}
else
{
echo "No Device Name: $device_name with Tester Type: $tester_type.";
}
}
?>
<?php
$action = rtrim($_REQUEST['action']);
if($action=="search")
{
$device_name = rtrim($_REQUEST['device_name']);
$tester_type = rtrim($_REQUEST['tester_type']);
echo searchDevice($device_name, $tester_type);
}
?>
Не можете ли вы просто сделать это одним запросом? –
@ Ja͢ck Если это возможно, я не знаю, как это сделать. Я выбираю вторую таблицу на основе значения из первой таблицы. Затем я проверяю, доступны ли в третьей таблице множественные значения, возвращаемые из второй таблицы. В настоящее время все еще найдется способ сделать это одним запросом. – hzq