我从mysql数据库中填充了一个选择框:
<?php
//Query the database for the results we want
$queryBesteller = $conn->query("SELECT * FROM bestellers");
//Create an array of objects for each returned row
while ($bestellerArray[] = $queryBesteller->fetch_object());
//Remove the blank entry at end of array
array_pop($bestellerArray);
?>
<label for="customerNameLabel">Naam Besteller</label>
<select name="bestellers" id="bestellerSelectBox" >
<option>Selecteer Besteller</option>
<?php foreach ($bestellerArray as $option) : ?>
<option value="<?php echo $option->name; ?>"><?php echo $option->name; ?></option>
<?php endforeach; ?>
</select>
大多数名称都填充如下:
<option value="Harry Parry">Harry Parry</option>
但有些人也会这样做,这是错误的:
<option value="Hans Petersonasd
">Hans Petersonasd
</option>
因为我后来想根据名称从mysql获取其他数据,但是如果有空格那么它将不起作用。
我试图在Sql中使用trim但也没有修复
答案: 我尝试修剪像下面的答案,但也没有修复。 我从表中删除了行并重新添加它们,然后就可以了
答案 0 :(得分:1)
尝试,
<?php foreach ($bestellerArray as $option) : ?>
<option value="<?php echo trim($option->name); ?>"><?php echo trim($option->name); ?></option>
<?php endforeach; ?>
答案 1 :(得分:1)
我会通过执行此MySQL查询来解决源数据问题:
UPDATE bestellers SET name = REPLACE(TRIM(TRAILING ' ' FROM col_name),
TRIM(TRAILING '\r' FROM col_name),
TRIM(TRAILING '\n' FROM col_name),
TRIM(TRAILING '\r\n' FROM col_name));
这将用于修剪此bestellers
表的所有行中名称字段的换行符和空格。仅仅使用TRIM(name)
对您不起作用的原因是新行是您的问题而TRIM()
仅删除空格。
答案 2 :(得分:0)
答案:我尝试过像下面的答案一样修剪,但也没有修复。我从表中删除了行并重新添加它们,然后就可以了