2013-12-03 2 views
1

Я новичок в php & mySQL, и это для школьного проекта.Проблемы с раскрывающимся списком PHP/mySQL

Im пытается добавить падение в столбец food_group, но с проблемами. Поскольку он стоит прямо сейчас, у меня есть раскрывающийся список «работает», однако он отображает только первый элемент в списке для всей записи, которую он извлекает. Не то, к чему они в настоящее время настроены. Я не уверен, что его время в то время, когда он это делает, но я нахожусь в точке, что я смотрю на свой код и не вижу проблемы. Вы можете увидеть страницу, о которой я говорю по адресу: http://web.nmsu.edu/~jrortiz/ICT458/FINAL/updateFood.php, чтобы получить визуальное представление.

Мне нужно выпадающее меню, чтобы показать дружеское имя из таблицы food_group.food_group. Но ему нужно сохранить значение food_group.id. Поэтому, когда я тяну базовый отчет он показывает, как: http://web.nmsu.edu/~jrortiz/ICT458/FINAL/food.php

Я не уверен, что я делаю неправильно в этом разделе кода: (Или на самом деле, если он даже в этой части)

while ($row = mysqli_fetch_array($myData2)) { 
    $options.= '<option value="'.$row['food_group'].'">'.$row['food_group'].'</option>'; 
    }; 
     echo "<td><SELECT NAME=Food_group>"; 
     echo $options; 
     echo "</SELECT></td>"; 

Вот полный блок кода:

<html> 
<head> 
</head> 
<body> 
<?php 
$con = mysqli_connect("localhost","user","pw","db"); 
if (!$con){ 
die("Can not connect: " . mysql_error()); 
} 


if(isset($_POST['update'])){ 
$UpdateQuery = "UPDATE food SET food_group='$_POST[Food_group]', food='$_POST[Food]',   ph='$_POST[PH]' WHERE food='$_POST[hidden]'";    
mysql_query($UpdateQuery, $con); 
}; 

if(isset($_POST['delete'])){ 
$DeleteQuery = "DELETE FROM food WHERE Food='$_POST[hidden]'";   
mysql_query($DeleteQuery, $con); 
}; 

if(isset($_POST['add'])){ 
$AddQuery = "INSERT INTO food (Food_group, Food, PH) VALUES ('$_POST[addGroup]','$_POST[addFood]','$_POST[addPH]')";   
mysql_query($AddQuery, $con); 
}; 

$sql = "SELECT * FROM food"; 
$myData = mysqli_query($con,$sql); 

$sql2="select * from food_group"; 
$myData2 = mysqli_query($con,$sql2) or die(mysql_error()); 

echo "<table border=1> 
<tr> 
<th>Food Group</th> 
<th>Food</th> 
<th>PH</th> 
<th>Update/Add</th> 
<th>Delete</th> 
</tr>"; 
while($record = mysqli_fetch_array($myData)){ 
echo "<form action=updateFood.php method=post>"; 
echo "<tr>"; 
    while ($row = mysqli_fetch_array($myData2)) { 
    $options.= '<option value="'.$row['food_group'].'">'.$row['food_group'].'</option>'; 
    }; 
     echo "<td><SELECT NAME=Food_group>"; 
     echo $options; 
     echo "</SELECT></td>"; 
echo "<td><input type='text' name='Food' value='$record[food]'/></td>"; 
echo "<td><input type='text' name='PH' value='$record[ph]'/></td>"; 
echo "<td><input type='submit' name='update' value='update'/></td>"; 
echo "<td><input type='submit' name='delete' value='delete'/></td>"; 
echo "<td><input type='hidden' name='hidden' value='$record[food]'/></td>"; 
echo "</tr>"; 
echo "</form>"; 
} 
echo "<form action=updateFood.php method=post>"; 
echo "<tr>"; 
echo "<td><input type='text' name='addGroup'></td>"; 
echo "<td><input type='text' name='addFood'></td>"; 
echo "<td><input type='text' name='addPH'></td>"; 
echo "<td><input type='submit' name='add' value='add'/></td>"; 
echo "</tr>"; 
echo "</form>"; 
echo "</table>"; 
mysqli_close($con); 
?> 

</body> 
</html> 
+0

Используйте РНР класс. –

+0

Мой проект должен быть завтра, и он чувствует себя как большая задача изучить PDO. Я начал изучать его немного. Спасибо – JasonOrtiz

+0

Прост в использовании. Много примеров. http://php.net/manual/en/book.pdo.php Нелегко предложить вам совет. Вы не внедрили свою структуру Db или какие-либо ошибки, которые может дать PHP. –

ответ

0

Вы могли бы попробовать это вместо этого - эхо выбора опций внутри, а {} петли

echo "<td><SELECT NAME=Food_group>";  
    while ($row = mysqli_fetch_array($myData2)) { 
     echo '<option value="'.$row['food_group'].'" $selected>'.$row['food_group'].'</option>'; 
     }; 
echo "</SELECT></td>"; 

А затем, чтобы сохранить текущий выбор виден вам просто нужно добавить что-то вроде этого (перед тем вы эхо опции)

if ($row['food_group'] == 'whatever'){ 
     $selected = 'selected="selected"'; 
    } else { $selected = '';} 

Позвольте мне знать, если это помогает на всех PDO :)

Смежные вопросы