簡體   English   中英

數組設置為使用PHP MySQL從數組中的列名

[英]array set as a column name from an array using php mysql

我有一個foreach循環,該循環使用從站點收集的數組中的新列名創建表。 目前,僅將數組的第一個元素設置為列名,有人可以幫忙嗎?

H這是我的代碼:

<?php
include 'simple_html_dom.php';
include 'connection.php';

function getsquad($url, $tablename){

$html = file_get_html($url);

$player_fromsite = array();

$space = ' ';
$replacespace = '_';

$player = array();

foreach($html->find('td[align=left]') as $element) {
   if ($element->children(0)) { // work only when children exists
          array_push($player_fromsite ,$element->children(0)->innertext);
   }
}

//$player[] = str_replace($space, $replacespace, $player_fromsite);
//unset($player_fromsite);

$length = count($player);

foreach($player_fromsite as $player_name) {
  mysql_query("CREATE TABLE " . $tablename . "(" . str_replace($space, $replacespace,     $player_name) . " VARCHAR(30))") or die(mysql_error());   
}

echo "Table Created!";

}

$Squad = new squad();
$Squad->getsquad('site', 'Ars');

?>

在foreach循環中,所有空格都用“ _”替換

我不確定我是否正確理解您想要的內容:在$player_fromsite您有一些字符串,這些字符串應成為名稱為$tablename的新表的列,而所有列均為VARCHAR(30)

如果是這樣,請將以下內容替換為您的最后一個foreach循環:

$columns = array();
foreach ($player_fromsite as $player_name) {
    $columns[] = '`' . str_replace($space, $resplacespace, $player_name) . '` VARCHAR(30)';
}
$query = 'CREATE TABLE `' . $tablename . '` (' . implode(',', $columns) . ')';
mysql_query($query) or die(mysql_error());

foreach循環基本上准備了所有列,然后將它們串聯到發送到數據庫的實際查詢中。

因此,例如讓$player_fromsite = array('foo', 'bar') ,您最終將獲得查詢

CREATE TABLE `Ars` (`foo` VARCHAR(30),`bar` VARCHAR(30));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM