带有从mysql填充的选项的selectbox会获得一个空格/换行符

时间:2015-09-23 09:41:47

标签: php mysql

我从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但也没有修复

答案: 我尝试修剪像下面的答案,但也没有修复。 我从表中删除了行并重新添加它们,然后就可以了

3 个答案:

答案 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)

答案:我尝试过像下面的答案一样修剪,但也没有修复。我从表中删除了行并重新添加它们,然后就可以了