Я занимаюсь созданием базы данных, которая имеет 4 столбца: «Тип», «Совместимый», «StockLevel», «Стоимость».Работа с php (explode)
Тип может быть «Батарея» с совместимым полем, являющимся идентификатором устройств, с которыми работает эта батарея, например, «1, 4, 9».
Мне нужен мой PHP, чтобы выполнить запрос в базу данных для всех «типов», которые включают $ _POST [compatible] в строке «Compatible». Конечно, это не так просто, как IF X = X, потому что нам сначала нужно (php) взорвать поле Compatible.
У меня болит голова, и я все еще пытаюсь найти решение, но я вставлю свой код и надеюсь, что один из вас может оказать некоторую помощь.
IF ($_POST["printer"]) {
$printerinfo_query = mysql_query("SELECT * FROM printers WHERE ID LIKE '$_POST[printer]'");
$printerinfo_result = mysql_fetch_assoc($printerinfo_query);
echo ("<H5>".$printerinfo_result["Model"]."</H5>");
echo "".$printerinfo_result["Description"]."";
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$cartridge_query = mysql_query("SELECT * FROM cartridges");
$cartridge_result = mysql_fetch_assoc($cartridge_query);
$explode = $cartridge_result["Compatible"];
$explodedata = explode(", ", $explode);
$explode_count = count($explodedata);
$explode_count_dec = count($explodedata);
$explode_number = "0"; // Re-creates $explodedata[0], [1], [2] etc.. using $explodedata[$explode_number] in the loop!
echo ("<P>Select a cartridge type —</P>");
echo "<form action='index.php?page=printeradv' method='POST'>";
while ($explode_count_dec > "0"):
$while_query = mysql_query("SELECT * FROM cartridges WHERE ID LIKE '$explodedata[$explode_number]'");
$while_result = mysql_fetch_assoc($while_query);
echo "<input type='radio' value='".$explodedata[$explode_number]."' name='cartridge' />".$while_result["Type"]." <BR /> ";
++$explode_number;
--$explode_count_dec;
endwhile;
echo "<input type='submit' value='Select model' />";
echo "</form>";
}
Возможно, вы также захотите взглянуть на изменение структуры базы данных, чтобы информация, находящаяся в совместимом поле, попала в отдельную таблицу - теперь у вас есть дизайн, который будет работать для нескольких элементов, но как только вы получил несколько десятков предметов, поддерживая это будет все труднее. – andrewsi
Я знаю, это звучит глупо, но я планирую редактировать эти данные с помощью панели администратора, и поэтому не нужно поддерживать ее напрямую. Хотя, как бы вы предложили мне сделать свою базу данных? У меня есть 2 стола, «Батареи» и «Часы». Часы имеют идентификатор, имя, описание. Таблица батарей (совместимое поле) затем включает идентификатор часов, с которыми эта батарея совместима. Это понятно? – Fal
См. Пост Surreal Dreams ниже, что делать. Проблема с помещением всех данных в список, разделенный запятыми, заключается в том, что если вы определили поле как (скажем) 250 символов, у вас закончится свободное пространство при добавлении дополнительных элементов; если вы поместите информацию в отдельную таблицу, вы можете добавить столько, сколько вам нужно. – andrewsi