Я очень плохо знаком с PDO / PHP и преобразовываю очень старую систему заказов VBScript в PDO / MYSQL. Все идет хорошо до сих пор.
У меня есть простая форма заказа для продуктов и количеств, никаких расчетов или платежей. Он работает нормально, за исключением того, что все продукты, которые не выбраны, отображаются в виде пустых строк на следующей HTML-странице, которая предназначена для предварительного просмотра заказа.
Я пробовал несколько способов решить проблему, но пока безуспешно. Это код:
$quantity1 = $_POST['quantity1'];
foreach($_POST['plantname1'] as $key => $plantname1)
{
$quantity1 = isset($_POST['quantity1'][$key])? $_POST['quantity1'] [$key]:'Not selected';
if($quantity1 != 0);
else ($plantname1 = ''. $quantity1 = '') ;
$message[] = $quantity1.' '. $plantname1 ;}
echo implode('<br>', $message);
unset($message);
Любая помощь приветствуется.
Удалить нулевые значения из массива PHP
PHP удалить "пустой" значения в массиве
$message= array_filter($message, function($v){return trim($v);});
$message= array_slice($message, 0 , count($message));
удаление пустых значений просто array_filter($message);
или на самом деле удалить else ($plantname1 = ''. $quantity1 = '') ;
строка из кода
может быть что-то вроде этого:
<?php
//buyer
$user_choice['Ageratum houstonianum'] = 11;
$user_choice['Aconitum'] = 8;
$user_choice['African Daisy'] = 7;
$user_choice['Allium roseum'] = 11;
$user_choice['Alchemilla'] = 1;
//==============================================
//the flower shop
$flower['Aconitum'] = 11;
$flower['African Daisy'] = 7;
$flower['Agapanthus'] = 5;
$flower['Ageratum houstonianum'] = 21;
$flower['Alchemilla'] = 0;
$flower['Allium roseum'] = 3;
//post request
if(isset($_REQUEST['user_choice'])) $user_choice = $_REQUEST['user_choice'];
//message of choice
if(isset($user_choice))
{
$message[] = 'Your order is: ';
foreach($user_choice as $key => $quantity)
{
if($quantity > $flower[$key])
{//check if available
if($flower[$key] > 0)
{
$message[] = 'Only '.$flower[$key].' of '.$key.' is available';
}else
{
$message[] = 'No '.$key.' is available';
};//end if
}else
{//show the choice
$message[] = $key.' ('.$quantity.')';
};//end if
};//end foreach
echo implode('<br>', $message);
};//end if
Выход
Your order is:
Ageratum houstonianum (11)
Aconitum (8)
African Daisy (7)
Only 3 of Allium roseum is available
No Alchemilla is available
Других решений пока нет …