2016-08-16 2 views
-1
<?php 
    $str = implode(',',$name); 
     function trim_value(&$value) 
     { 
     $value = trim($value); 

     $Array = explode(',', $str); 


     array_walk($myArray, 'trim_value'); 

for($x=0; $x<count($myArray); $x++){ 

     var_dump($Array[$x], $sports[$x]); 
     } 
     //this is just a portion of the code this is the part that's causing the problem 
     ?> 


<input name="name[]"/><!--John Doe, Jane Doe--> 
<input name="sports[]"/><!--tennis--> 

<input name="name[]"/><!--William Doe--> 
<input name="sports[]"/><!--football--> 

Предположим, я хочу передать имя, которое является запятая seprated имена в базе данных MySQL, но я хотел бы взрываются затем взрываются разделить строки в массив для хранения, то в там есть соответствующие строки. Как написать php для этого, используя для цикла.проходя два массива в MySQL разных размеров один ряд

поэтому в базе данных строки будут выглядеть как строка 1 = John Doe | теннис |, ряд 2 = Джейн До | теннис |, ряд 3 = Уильям Доу | футбол |. Входы генерируются динамически с помощью jquery. Я написал код для этих полей addmore динамически при нажатии кнопки.

Пробовал делать это, но я продолжаю получать первые виды спорта, которые применяют теннис для всех строк, которые я хочу, чтобы они связывались, как я уже говорил. ПОМОГИТЕ!! ПОМОГИТЕ!! ПОМОГИТЕ!!

+0

Пожалуйста, покажите, что вы пробовали. –

+0

Жаль, что я переполнился и удалил все, теперь я начинаю с нуля. Мне просто нужно начать с нуля –

+0

Как именно вы хотите, чтобы ваши поля ввода отображались? Как окно ввода с одним видом спорта, а затем поле ввода с несколькими именами? –

ответ

1

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

$rows = array(
    "John Doe| tennis |", 
    "Jane doe |tennis |", 
    "William Doe |football|" 
); 

foreach($rows as $row) { 
    $fields = array_filter(explode("|", $row)); // Breaking up when | appears. Filtering is preferred because the last entry can return blank sometimes. 
    $sportmen[trim($fields[1])][] = $fields[0]; // $fields[1] contain the sport. And $field[0] contain the player name. 
} 

До сих пор спортсмены массив $ выглядит следующим образом:

Array 
(
    [tennis] => Array 
    (
     [0] => John Doe 
     [1] => Jane doe 
    ) 

    [football] => Array 
    (
     [0] => William Doe 
    ) 

)  

Теперь нам нужно просто перебрать этот массив.

<?php foreach($sportmen as $sport => $players) { ?> 
    <input name="name[]" value="<?php echo implode(",", $players); ?>" /> 
    <input name="sports" value="<?php echo $sport; ?>" /> 
<?php } ?> 
+0

ok последний php предназначен для отображения в поле ввода. большое спасибо. Мне просто нужна верхняя часть, поэтому я собираюсь попробовать ее и посмотреть, передает ли она значения mysql –

+0

, поэтому для первого кода поля ввода будут выглядеть как

+0

Посмотрите, что имя является атрибутом HTML. Это должно быть и not

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