Как заменить переменную именем Поля в SQL-запросе
У меня есть таблица с видами Филдса, Адамса, Аллегейни и т. д. (за исключением первого, каждое из названий полей является названием округа – всего 67).
У меня есть список выбора, основанный на другой таблице названий округов (67 записей). Имена в этом списке совпадают с именами полей в таблице выше.
Я хочу, чтобы пользователь выбрал округ, а затем отобразил содержимое только полей " вид " и округ, который был выбран.
Такие как виды, Адамс
или виды, углерод
и т.д.
Я попробовал код ниже, но когда я выбираю округ, отображается поле вида, но больше ничего.
Я знаю, что могу написать отдельный запрос для каждого округа и заставить select ссылаться на него, но это кажется пустой тратой кода.
Есть ли простой способ заставить эту замену имени Поля работать?
Что я уже пробовал:
$colname_rsCountyLists = "-1"; if (isset($_POST['County'])) { $colname_rsCountyLists = $_POST['County']; } $maxRows_rsCountyLists = 10; $pageNum_rsCountyLists = 0; if (isset($_GET['pageNum_rsCountyLists'])) { $pageNum_rsCountyLists = $_GET['pageNum_rsCountyLists']; } $startRow_rsCountyLists = $pageNum_rsCountyLists * $maxRows_rsCountyLists; mysql_select_db($database_PaSiteGuide, $PaSiteGuide); $query_rsCountyLists = "SELECT AOU_Order, SPECIES, SCINAME, {$colname_rsCountyLists} FROM countybirdlists"; $query_limit_rsCountyLists = sprintf("%s LIMIT %d, %d", $query_rsCountyLists, $startRow_rsCountyLists, $maxRows_rsCountyLists); $rsCountyLists = mysql_query($query_limit_rsCountyLists, $PaSiteGuide) or die(mysql_error()); $row_rsCountyLists = mysql_fetch_assoc($rsCountyLists); if (isset($_GET['totalRows_rsCountyLists'])) { $totalRows_rsCountyLists = $_GET['totalRows_rsCountyLists']; } else { $all_rsCountyLists = mysql_query($query_rsCountyLists); $totalRows_rsCountyLists = mysql_num_rows($all_rsCountyLists); } $totalPages_rsCountyLists = ceil($totalRows_rsCountyLists/$maxRows_rsCountyLists)-1; mysql_select_db($database_PaSiteGuide, $PaSiteGuide); $query_rsCounties = "SELECT counties.CountyName FROM counties ORDER BY counties.CountyName"; $rsCounties = mysql_query($query_rsCounties, $PaSiteGuide) or die(mysql_error()); $row_rsCounties = mysql_fetch_assoc($rsCounties); $totalRows_rsCounties = mysql_num_rows($rsCounties); ?> <head> </head> <body> <form action="Test1.php" method="post" name="form1" target="_self" id="form1"> <p> <label for="select">Select:</label> <select name="County" id="select" onchange="this.form.submit()"> <?php do { ?> <option value="<?php echo $row_rsCounties['CountyName']?>"><?php echo $row_rsCounties['CountyName']?></option> <?php } while ($row_rsCounties = mysql_fetch_assoc($rsCounties)); $rows = mysql_num_rows($rsCounties); if($rows > 0) { mysql_data_seek($rsCounties, 0); $row_rsCounties = mysql_fetch_assoc($rsCounties); } ?> </select> <p> </p> </form> <p><?php echo $colname_rsCountyLists;?></p> <table width="372" border="0"> <tr> <td width="180"><?php do { ?> <table width="372" border="0"> <tr> <td width="182"><?php echo $row_rsCountyLists['SPECIES']; ?></td> <td width="180"><?php echo $row_rsCountyLists['{$colname_rsCountyLists}']; ?></td> </tr> </table> <?php } while ($row_rsCountyLists = mysql_fetch_assoc($rsCountyLists)); ?></td> </tr> </table> <p> </p> </body> </html> <?php mysql_free_result($rsCountyLists); mysql_free_result($rsCounties); ?>
j snooze
разве это не было бы больше похоже
$query_rsCountyLists = "SELECT AOU_Order, SPECIES, SCINAME". $colname_rsCountyLists . "От графов-птицеловов";
Member 13347492
Это тоже не работает.