2016-08-16 4 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--> 

nehme ich an Namen übergeben wollen, das ist Komma Namen in der MySQL-Datenbank seprated aber ich würde implodieren wie dann explodieren die Saiten in einem Array aufzuteilen dann zu speichern, in dort eigene Reihen. Wie würde man den PHP schreiben, um dies mit for-Schleife zu tun.vorbei zwei Array in mysql verschiedene Größen eine Reihe

so würden in der Datenbank die Zeilen wie Zeile 1 = John Doe | aussehen Tennis |, Reihe 2 = Jane doe | Tennis |, Reihe 3 = William Doe | Fußball |. Eingaben werden dynamisch mit jquery generiert. Ich habe einen Code auf diese addmore Felder dynamisch beim Knopfdruck geschrieben.

Ich habe versucht, es zu tun, aber ich bekomme immer die ersten Sportarten, die Tennis auf alle Reihen angewendet wird, die ich will, dass sie verknüpfen, gerade wie ich gesagt habe. HILFE!! HILFE!! HILFE!!

+0

Bitte zeigen Sie, was Sie bisher versucht haben. –

+0

Sorry, ich bin überwältigt und habe alles gelöscht, jetzt fange ich von vorne an. Ich brauche nur einen Kickstart –

+0

Wie genau sollen Ihre Eingabefelder angezeigt werden? Wie ein Eingabefeld mit einem einzelnen Sport, gefolgt von einem Eingabefeld mit mehreren Namen? –

Antwort

1

Die abgerufenen Datensätze müssen in ein multidimensionales Array so angepasst werden, dass ein Sport mehrere Sportler haben kann.

$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. 
} 

Bisher war die Sportler $ array sieht wie folgt aus:

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

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

)  

Nun müssen wir Schleife durch diese Anordnung einfach.

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

ok das letzte php wird in der Eingabebox angezeigt. Danke vielmals. Ich brauche nur den oberen Teil, also werde ich es versuchen und sehen, ob es die Werte an mysql –

+0

übergibt, so dass die Eingabefelder für den ersten Code wie

+0

Bitte beachten Sie, dass dieser Name ein HTML-Attribut ist. Es sollte und nicht

Verwandte Themen