2013-12-12 2 views
1

Я просто изучаю PHP/MySQL и провел последние несколько дней, пытаясь получить раскрывающееся меню для заполнения параметров из моей базы данных. Я прочитал несколько руководств и попытался применить их, но я не могу заставить это работать.Выпадение PHP/MySQL

То, что я пытаюсь сделать: мне нужно выпадающее меню под названием «генотип», который тянет список генотипов из колонки «генотип» таблицы в моей базе данных под названием «Мышей».

Задача: Когда я нажал кнопку отправки, она подключается к моей базе данных и выполняет запрос. НО Я не могу получить какие-либо опции, чтобы отобразиться из раскрывающегося меню.

Вот мой код до сих пор (Пожалуйста, дайте мне знать, если я должен разместить mousecount.php)

<?php 

include('connection.txt'); 

$conn = mysqli_connect($server, $user, $pass, $dbname, $port) 
or die('Error connecting to MySQL server.'); 
?> 

<html> 
<head><title>Crap That Won't Work</title></head> 
<body bgcolor="white"> 

<hr> 
<dt>THINGS ARE TOTALLY NOT WORKING</dt> 
<dd> 
<form action="mousecount.php" method="POST"> 
<table><tr> 
<td><p><label for="Genotype">Genotype:</label><br/> 
<select name="Genotype"> 
<?php 
$query = "SELECT MouseID, Genotype FROM Mice"; 
$result = mysqli_query($conn, $query); 
while($row = mysqli_fetch_array($result)) 
{ 
print "<option value=\"$row['Genotype']\">".$row['Genotype']."</option>"; 
} 
?> 
</select> 
</p></td> 
</tr></table><br/> 
<input type="submit" value="Submit"> 
</form> 
</body> 
</html> 


Edit (решена):

У меня были проблемы с получением выпадающее меню для заполнения параметрами из базы данных MySQL. Благодаря вашей помощи. Я отправляю свой последний код, если он поможет кому-то еще.

<!-- Connect to database --> 
<?php 
include('connection.php'); 
$conn = mysqli_connect($server, $user, $pass, $dbname, $port) 
or die (mysql_error()); 
?> 

<hr> 

<h4>Mice Count</h4> 
<form action="mousecount.php" method="POST"> 
<p><label for="Genotype">By Genotype:</label><br/> 
<?php 
$query = "SELECT Genotype from Mice GROUP BY Genotype"; 
$result = mysqli_query($conn, $query); 
echo "<select name='Genotype'>"; 
echo "<option value='0'>-Select-</option>"; 
while($row = mysqli_fetch_array($result)) { 
    echo "<option value='".$row['Genotype']."'>".$row['Genotype']."</option>"; 
} 
echo "</select>"; 
?> 
</p> 
<input type="submit" value="Submit"> 

</form> 

</body> 
</html> 
+0

AFAIK, 'E_NOT_WORKING' не является распространенным кодом ошибки PHP. –

+0

@ tereško Очень часто на SO, но не полезно :) – vascowhite

+0

Лучше всего разместить свой успешный код в качестве редактирования, а не заменять исходный вопрос. Стирание исходного кода затрудняет для других кодеров определение проблемы/решения. – showdev

ответ

0

Пожалуйста, смотрите php.net manual как я не вижу способа выборки.

+0

Спасибо! Я изменил его на: while ($ row = mysqli_fetch_array ($ result)) теперь фанк-код ушел из раскрывающегося списка, но он все равно не тянет что-либо из моей базы данных. – SummerEla

+0

$ rows = mysqli_fetch_array ($ result); foreach ($ rows AS $ row) { \t print ""; } – LisaK1308

+0

Спасибо ... это не сработало. Выпадающее окно все еще пустое. Вот ссылка на результаты, если это полезно: http://ix.cs.uoregon.edu/~summere/index.html – SummerEla

0

Что имеется в connection.txt?
Если у вас есть переменные связи, написанные на этом, сделайте вместо него файл php, а затем включите его.

+0

Независимо от имени файла, которое вы передадите, будет передано интерпретатор. Это привело к эксплойтам оболочки c99 несколько лет назад и привело к включению по умолчанию отключенного URL-адреса ('include ('http://malicious.site/c99.shell.txt');') – DanFromGermany

+0

Спасибо @srikanta mondal! Запрос теперь извлекает результаты, но раскрывающееся меню по-прежнему не вытягивает параметры из базы данных. – SummerEla

0

Подключение к базе данных первого

$con=mysqli_connect("localhost","username","password","dbname"); 
if (mysqli_connect_errno()) 
{ printf("Connect failed: %s\n", mysqli_connect_error()); 
exit(); } 

$result = mysqli_query($con, "select MouseID, Genotype FROM Mice"); 
while ($row = mysqli_fetch_assoc($result)){ ?> 
<option value="<?php echo $row['Genotype']; ?>"><?php echo $row['Genotype']; ?></option> 
+0

Спасибо! У меня есть переменная: $ conn = mysqli_connect ($ server, $ user, $ pass, $ dbname, $ port) \t или die ('Ошибка подключения к серверу MySQL.'); Это указывает на файл connection.php с информацией о подключении. Он правильно подключается, выпадающий список просто не дает мне никаких вариантов. – SummerEla

-1

сначала требуется добавить подключение к базе данных с помощью этого кода.

<?php 
$con = mysql_connect("localhost", "root", "") or die("Failed to connect to MySql."); 
mysql_select_db("demo", $con) or die("Failed to connect to database"); 
?> 

тогда это ваше раскрывающееся меню, все значения взяты из базы данных.

<select name="country" class="country"> 
<option selected="selected">--Select Country--</option> 
<?php 
$sql=mysql_query("select * from countries order by id ASC"); 
while($row=mysql_fetch_array($sql)) 
{ 
echo '<option value="'.$row['id'].'">'.$row['name'].'</option>'; 
} ?> 
</select> 
+0

Спасибо! У меня есть переменная, которую я вызываю из переменной $ result: $ conn = mysqli_connect ($ server, $ user, $ pass, $ dbname, $ port) или die ('Ошибка подключения к серверу MySQL.'); Тогда я называю это: $ result = mysqli_query ($ conn, $ query); И затем указывает на файл connection.php с информацией о подключении. Он подключается, и когда я нажимаю кнопку отправки, он выполняет запрос, но выпадающий список просто не заполняется никакими параметрами. – SummerEla

+3

Почему вы используете устаревшие и небезопасные mysql_query()? – MSA

+0

Каково значение запроса $? – vaibhav

0

теперь вы можете использовать этот код ... сначала сделать подключение к базе данных.

<?php 
$conn = mysqli_connect("localhost", "root", "") or die('Error connecting to MySQLserver.'); 
mysqli_select_db($conn, "demo") or die("Failed to connect to database"); 
?> 

получить значение в базе данных &, используемой в вашем ниспадающего меню.

<select name="country" class="country"> 
<option selected="selected">--Select Country--</option> 
<?php 
$sql=mysqli_query($conn, "select * from countries order by id ASC"); 
while($row=mysqli_fetch_array($sql)) 
{ 
echo '<option value="'.$row['id'].'">'.$row['name'].'</option>'; 
} ?> 
</select> 
Смежные вопросы