2013-12-01 1 views
0

Im новичок, и работает над проектом для школыСоздать раскрывающийся список из другой таблицы в мое обновление/удаление/добавление таблицы

У меня есть веб-сайт, который содержит список продуктов.

У меня есть таблица обновлений, которая позволяет мне изменять и добавлять данные.

Для поля группы продуктов питания у меня есть ссылка на другую таблицу под названием food_group, в которой есть food_group (имя) и идентификатор.

Когда вы просматриваете данные о еде, вы можете увидеть имя, которое оно тянет вместо идентификатора. На странице обновления я бы хотел, чтобы вместо идентификатора выпадало. Таким образом, вы можете видеть «дружественное» имя вместо идентификационного номера, но оно должно хранить идентификатор, а не дружественное имя в таблице продуктов.

Сайт можно найти по адресу http://web.nmsu.edu/~jrortiz/ICT458/FINAL/

Код, у меня есть:

<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); 
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>"; 
echo "<td><input type='text' name='Food_group' value='$record[food_group]'/></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>"; 
mysql_close($con); 
?> 

</body> 
</html> 

__ _ __ _ __ _ __ _ Update 12/2/13 22:30 _ __ _ __ _ __ _ __ _ __ _ ___ ИТАК, если я создаю новую PHP страницу, как следующий будет работать. Тем не менее, я понятия не имею, как объединить его с оригиналом выше ... Может ли кто-нибудь помочь?

<html> 
<head> 
</head> 
<body> 
<?php 

// Connect to the database server 
$con = mysql_connect("localhost","user","pw"); 
if (!$con){ 
die("Can not connect: " . mysql_error()); 
} 
mysql_select_db("db",$con); 

$sql2="SELECT id, food_group FROM food_group"; 
$result = mysql_query($sql2,$con) or die(mysql_error()); 
while ($row = mysql_fetch_array($result)) { 
$type=$row["food_group"]; 
$options.= '<option value="'.$row['id'].'">'.$row['food_group'].'</option>'; 
};?> 

<SELECT NAME=Food_group> 
<OPTION VALUE=0>Choose</OPTION> 
<?php echo $options; ?> 
</SELECT> 
</body> 
</html> 

Благодарим за предоставленную Вам помощь! Джейсон

+0

Вы открыты для SQL-инъекции. Пожалуйста, избегайте ввода данных, прежде чем вкладывать их в запрос. – user4035

ответ

1

Ваш сценарий хорош, но я просто хочу указать следующее:

Там нет необходимости объединить этот

"<td>" . "<input type=text name=Food_group value=" . $record['food_group'] . "   </td>"; 

вы можете ввести его как это:

echo "<td><input type=text name=Food_group value='$record[food_group]'</td>"; 

также вы пропустили, чтобы закрыть тег ввода

echo "<td><input type=text name=Food_group value='$record[food_group]' /></td>"; 

и другое вам нужно процитировать значение атрибутов см ниже

echo "<td><input type='text' name='Food_group' value='$record[food_group]'</td>"; 

Последней вещи, что вы открыты для инъекции SQL, так что вы должны начать обучение MySQLi и подготовленное заявление

+0

Спасибо за эти исправления. Это будет намного лучше. С помощью mysqli есть ли простые способы сделать выпадающие списки сейчас? – JasonOrtiz

+0

BTW. Я редактировал свой оригинальный код с вашими предложениями. Спасибо. – JasonOrtiz

+0

Что делает выпадение? выбрать метод 'add/edit/delete'? –