Извеждане на резултати от колона разделени със запетая

vinsbg

Registered
Здравейте,

имам едно колона в която има няколко записи разделени със запетая. Опитвам се да ги изкарам на страницата, но ми извежда само първия елемент.. останалите не. Това е заявката
Код:
$pdo = Database::connect();                        		
$value = $pdo->prepare("SELECT * FROM uploads WHERE upload_id = ? "); 
$value->bindValue(1, $_GET['upload_id'], PDO::PARAM_INT);					
$value->execute();	    			        
foreach($value as $row)
{	    
	echo' 
                // показване на останали полета... html ..
         ';
          $options = $row['upload_plan'];
	  $optionsArr = explode(",", $options); 
	   //   print_r($row['upload_plan']);
	   //	  print_r( $optionsArr );
	
          foreach ($optionsArr as $rows)
          {
	            echo '<p><a href="#" class="btn btn-info btn-xs col-lg-12" style="margin-bottom:4px;white-space: normal;word-wrap:break-word;"><span class="glyphicon glyphicon-file"></span> ' . $rows . '</a></p>';  
	   }
}
 
uphero каза:
PHP:
 //   print_r($row['upload_plan']);
      //     print_r( $optionsArr );
Това какво ти връща?
// print_r($row['upload_plan']); - > 1cf89d2100e5bccdd32e8b776f0c70a1.png

// print_r( $optionsArr ); - > Array ( [0] => 1cf89d2100e5bccdd32e8b776f0c70a1.png )

Само първия елемент от колоната..
 
vinsbg каза:
uphero каза:
PHP:
 //   print_r($row['upload_plan']);
      //     print_r( $optionsArr );
Това какво ти връща?
// print_r($row['upload_plan']); - > 1cf89d2100e5bccdd32e8b776f0c70a1.png

// print_r( $optionsArr ); - > Array ( [0] => 1cf89d2100e5bccdd32e8b776f0c70a1.png )

Само първия елемент от колоната..
А какво има в това поле?
Дай го цялото.
 
uphero каза:
vinsbg каза:
uphero каза:
PHP:
 //   print_r($row['upload_plan']);
      //     print_r( $optionsArr );
Това какво ти връща?
// print_r($row['upload_plan']); - > 1cf89d2100e5bccdd32e8b776f0c70a1.png

// print_r( $optionsArr ); - > Array ( [0] => 1cf89d2100e5bccdd32e8b776f0c70a1.png )

Само първия елемент от колоната..
А какво има в това поле?
Дай го цялото.

Ето това.. така е в базата данни:
Код:
1cf89d2100e5bccdd32e8b776f0c70a1.png,96efb81dd4c3ca92f2233ad35aa6db1b.png,4e6313f253765e063a4a2cf918c656d7.png,fb75fea39d993a39f9b1eb5587fc72d6.png,27a3d5f940f9bc768f5f3323c1aceca7.png
 
Нещо не разбрах това за колоната :). Имаш едно поле вътре със стринг разделен от запетаи така ли? Кажи също ако не го експлоадираш какво ти връща?
 
teroristd каза:
Нещо не разбрах това за колоната :). Имаш едно поле вътре със стринг разделен от запетаи така ли? Кажи също ако не го експлоадираш какво ти връща?
От форма за качване на снимки полето на формата позволява до 8 снимки да се качат и ги запазвам по този начин разделени със запетая. Сега искам да извадя това от базата. не снимката а имената без да показвам само снимката... в случая това:
1cf89d2100e5bccdd32e8b776f0c70a1.png,
96efb81dd4c3ca92f2233ad35aa6db1b.png,
4e6313f253765e063a4a2cf918c656d7.png,
fb75fea39d993a39f9b1eb5587fc72d6.png,
27a3d5f940f9bc768f5f3323c1aceca7.png

Без explode пак връща само първия елемент, което е: 1cf89d2100e5bccdd32e8b776f0c70a1.png
 
Може и да приказвам глупости че напоследък, с други работи ми е зает мозъка :D , ама не трябва ли да имаш нещо fetchAssoc, fetchArray след execute().
 
teroristd каза:
Може и да приказвам глупости че напоследък, с други работи ми е зает мозъка :D , ама не трябва ли да имаш нещо fetchAssoc, fetchArray след execute().
Получавам куп грешки с Warning: Illegal string offset ... когато пробвам с fetch(PDO::FETCH_ASSOC)

едит:
fetchall(PDO::FETCH_ASSOC) - връща същия резултат, какъвто е и без него... тоест само първия елемент.
 
Явно нещо не правиш правилно, за да ти дава грешки.

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);
 
edit:
Оправих го. Само един въпрос понеже след последния елемент в тази колона има , ( запетая ) как да я махна?

т.е. да се сложи някъде да маха , след последния елемент.. да не слага просто. При ъплоуда ли ще е по-добре или при извеждането да я изтрива?
 
vinsbg каза:
edit:
Оправих го. Само един въпрос понеже след последния елемент в тази колона има , ( запетая ) как да я махна?

т.е. да се сложи някъде да маха , след последния елемент.. да не слага просто. При ъплоуда ли ще е по-добре или при извеждането да я изтрива?

Ти като (ако) join()-ваш на входа не би трябвало да слага запетайка...
 
anonimen каза:
vinsbg каза:
edit:
Оправих го. Само един въпрос понеже след последния елемент в тази колона има , ( запетая ) как да я махна?

т.е. да се сложи някъде да маха , след последния елемент.. да не слага просто. При ъплоуда ли ще е по-добре или при извеждането да я изтрива?

Ти като (ако) join()-ваш на входа не би трябвало да слага запетайка...
Еми слага :)
това е в пхп-то на ъплоуд формата след всичките му проверки и т.,н.
Код:
if (!move_uploaded_file($temporaryFile, $uploadFolder.$name)) {
                    throw new Exception("An error occured while trying to upload a file.");
} else {
        $files->$file->name .= $name . ',';
}
 
Под join()-ваш имам предвид това - join()
Вкарваш масива с имена в join() и ти връща стринг, разделен със запетайки, без запетайка накрая.

Пример от горе:
PHP:
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone
 
vinsbg каза:
В такъв случай ще ми е по-лесно да се мъча да ги изкарам просто с join()..
PHP:
if (!move_uploaded_file($temporaryFile, $uploadFolder.$name)) {
                    throw new Exception("An error occured while trying to upload a file.");
} else {
        $all_filles[] = $name;
}
// извън цикъла
$files->$file->name = implode(",", $all_filles);
 

Back
Горе