gpt4 book ai didi

php - 使用php mysql将数组设置为数组中的列名

转载 作者:行者123 更新时间:2023-11-29 00:22:30 25 4
gpt4 key购买 nike

我有一个 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 循环基本上准备了所有列,然后将它们连接到发送到数据库的实际查询。

所以对于 exmaple let $player_fromsite = array('foo', 'bar'),你最终会得到查询

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

关于php - 使用php mysql将数组设置为数组中的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20596970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com