Как я могу объединить или объединить результаты строки в другую строку (включая имплозу) - PullRequest
0 голосов
/ 13 марта 2020

Итак, я использовал implode для хранения значений метода POST в переменной ...

$xaraktiristika = implode(', ', $_POST['tlxar']);

, что дает мне результат этой строки:

Sugar, Sugar-Type, Decaf, Quantity, Extra Syrup

и второй:

  $choices = implode(', ', $_POST['epiloges_xar']);

, который дает мне результат этой строки:

Medium-sugar, Brown, Yes, Double, No

Теперь я хочу объединить их, чтобы я мог вставить их в свою базу данных.

Мой вопрос: могу ли я объединить эти два, так что результат будет примерно таким:

Sugar:Medium-sugar, Sugar-Type:Brown, Decaf:Yes etc.

или я должен сделать это по-другому? Я прошу прощения, если мой вопрос не имеет особого смысла, но я все еще изучаю все эти вещи, а английский sh не является моим родным языком. XD

Вот код, если он помогает:

<?php

if (isset($_POST["btn1"])) {
	
$xaraktiristika = implode(', ', $_POST['tlxar']);

echo $xaraktiristika;


echo"<br>";


  $epiloges_string = implode(', ', $_POST['epiloges_xar']);

	
  
 
  

$s="insert into kalathi_proion(id,
								id_session,
									id_proion,
										posothta,
											poso,
												id_xarakthristikou_proiontos,
													timi_xarakt,
														timi_euro_xarakt
															) values

(NULL,
	'$sid',
		$_POST[idp],
			$_POST[quantity],
				$_POST[timi],
					'$xaraktiristika',
						 '$choices',
							$_POST[tx]
								)";

mysqli_query($conn,$s);



echo $s;
	
}


 else 
	 
{    
    echo "Error";
}



?>




  <?php 

echo " 

<div class='container pp1'>



		<div class=header1>
		<h4>ΚΑΦΕΔΕΣ</h4>
		</div>
		
		
		";
	
	

$s="SELECT proionta.id as idproion, proionta.titlos as proionta_title,proionta.perigrafh as proionta_desc,proionta.timh as proionta_price
FROM proionta,katigories

WHERE proionta.id_katigorias=1
AND katigories.id=proionta.id_katigorias ";



$tb=mysqli_query($conn,$s);
	
	
	
			while($row=mysqli_fetch_array($tb))
			{
				echo "
				
							
							<div class=p1>
								<li><h4>$row[proionta_title]</h4> <h4 class=price id=val>$row[proionta_price]€</h4></li>
								<li><button class=btn id=btnShowModal data-toggle=modal data-target=#myModal$row[idproion]>Προσθήκη</button></li>
									<p>$row[proionta_desc]</p>
									<hr>
							</div>";
							
							
							
							
							
							
							
						echo"	<!------------------------------------------------MODAL----------------------------------------------->";



 echo" <div class='modal fade' id='myModal$row[idproion]' role='dialog'> <!-------modal start-------------->
  
		<div class='modal-dialog modal-lg'>
	
			<div class='modal-content'> <!-------modal content start-------------->
	  
					<div class='modal-header'> 					<!-------modal header-------------->
					
					  <button type='button' class='close' data-dismiss='modal$row[idproion]'>&times;</button>
					  <h4 class='modal-title'>Επιλογές</h4>
					  
					</div>										<!-------end of modal header-------------->
		
		
		
					<div class='modal-body'>";
		
						$s2="SELECT *,xarakthristika.id as idxarakthristikou,xarakthristika_proiontwn.id_xarakthristika as idxappr 
		
							FROM  xarakthristika_proiontwn,xarakthristika
							
		
							WHERE xarakthristika_proiontwn.id_xarakthristika = xarakthristika.id
		
							AND xarakthristika_proiontwn.id_proionta= $row[idproion]";
		
							$tb2=mysqli_query($conn,$s2);
		
						
		
														echo "

							<form action='paragelia.php' method=post> 
							
		
								<input type=hidden value=$row[idproion] name=idp>  <!--id proiontos-->
							
								<input type='hidden' name=timi value='$row[proionta_price]'>		<!--timh proiontos-->		
							
								
							";
				
		
									while($row2=mysqli_fetch_array($tb2))
									{
						
					echo "
									<input type=hidden value='$row2[idxarakthristikou]' name=idpx> <!-- xarakthristika id -->
					
									<input type='hidden' name=tlxar[] value='$row2[titlos]'>
					";			
					
					echo"        	<label for='epiloges'>$row2[titlos]</label>
								
										<select id='epiloges' name=epiloges_xar[]>";
										
										
									$s3="SELECT * 
									
									FROM times_xarakthristikwn,xarakthristika
									
									WHERE times_xarakthristikwn.id_xarakthristikou=$row2[idxappr] 
									AND xarakthristika.id=$row2[idxappr] 
									";
										$tb3=mysqli_query($conn,$s3);
								
								
								
								
								
										while($row3=mysqli_fetch_array($tb3))
										{
										
								
					echo"	            <option><span>$row3[onoma]</span></option><span style='font-size:8px;'>($row3[timh])</span>
					
										
											
					";					
										}
											
											
											
					echo"						
									</select>
									
									<input type=hidden value='$row3[timh]' name=tx> <!-- timh a3ia epiloghs xarakt-->	
									<br>
					";
									
									
									
									}	
							
		
		
							echo "	
							<div class='quantity'><!-----quantity start----->
							<h4>Ποσότητα:</h4>
							<input type='number' value='1' min='0' max='1000' step='1' id='qnt' name='quantity'/>

							</div> <!-----quantity end----->
		
		
		
							<div class='comments'><!-----comments start----->
								<p>Σχόλια</p>
								<textarea rows='4' cols='50'> </textarea>
							</div>      <!-----comments end----->";
		
		echo "
		

						
						
					</div><!-----end of modal body----->
		
		
		

				<div class='modal-footer'>
					<button type='submit' class='btn btn-primary' name='btn1' >Προσθήκη1</button>
				</div>
    
						

				
					</form>		
					";
	


  
echo"

				
			</div><!-------modal content end-------------->
	</div> 
</div> 
<!------------------------------------------------END OF MODAL----------------------------------------------->
 ";




							
											
}	

echo"</div>";
  ?>





  <?php
include "down.php";
?>

Я хочу объединить $ xarakthristika и $ выборы в одну переменную и вставить их в базу данных, как я говорил в начале поста.

Ответы [ 2 ]

1 голос
/ 13 марта 2020

используя array_map вы можете сделать это просто

$_POST['tlxar'] = array("Sugar", "Sugar-Type", "Decaf", "Quantity", "Extra Syrup");
$_POST['epiloges_xar'] = array("Medium-sugar", "Brown", "Yes", "Double", "No");

echo implode(', ', array_map(function ($a, $b) {
  return $a.':'.$b;
}, $_POST['tlxar'], $_POST['epiloges_xar']));

вывод:

Sugar:Medium-sugar, Sugar-Type:Brown, Decaf:Yes, Quantity:Double, Extra Syrup:No
1 голос
/ 13 марта 2020

Объяснение

Этот ответ запускает счетчик (count = 0, потому что массивы начинаются с 0) и, используя PHP foreach l oop, мы циклически перебираем значения в массиве $xaraktiristika используя переменную $count. При этом мы добавляем текущее значение в массив $choice (разбитый на отдельные части как $c) в запрошенном формате. После сложения частей вместе, $count увеличивается на 1, и процесс продолжается до тех пор, пока не будут использованы все значения в $choice.

<?php
$xaraktiristika = array("Sugar", "Sugar-Type", "Decaf", "Quantity", "Extra Syrup");
$choice = array("Medium-sugar", "Brown", "Yes", "Double", "No");
$count = 0;
foreach ($choice as $c) {
  echo $xaraktiristika[$count] . ":" . $c . ", ";
  $count = $count + 1;
}
?>
...