php while循环输出为每个项目生成select
我知道我的编码不正确,但似乎找不到纠正的方法。其目的是显示一个下拉列表,其中填充来自mysql数据库的结果。它当前显示每个地址的下拉列表。我知道这是为什么,但似乎无法纠正它。回音应该在while循环之外吗?或者位置正确,但在其他地方是错误的?如果有人能检查一下并告诉我哪里出了问题,那就太好了。非常感谢php while循环输出为每个项目生成select,php,Php,我知道我的编码不正确,但似乎找不到纠正的方法。其目的是显示一个下拉列表,其中填充来自mysql数据库的结果。它当前显示每个地址的下拉列表。我知道这是为什么,但似乎无法纠正它。回音应该在while循环之外吗?或者位置正确,但在其他地方是错误的?如果有人能检查一下并告诉我哪里出了问题,那就太好了。非常感谢 <?php $customer = mysql_real_escape_string( $_GET["customer"] ); $con = mysql_
<?php
$customer = mysql_real_escape_string( $_GET["customer"] );
$con = mysql_connect("localhost","root","");
$db = "sample";
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($db, $con);
$query_rs_select_address2 = sprintf("SELECT * FROM company_com where idcode_com = '$customer'");
$rs_select_address2 = mysql_query($query_rs_select_address2, $con) or die(mysql_error());
$row_rs_select_address2 = mysql_fetch_assoc($rs_select_address2);
$totalRows_rs_select_address2 = mysql_num_rows($rs_select_address2);
while ($row_rs_select_address2 = mysql_fetch_assoc($rs_select_address2))
{
$address=$row_rs_select_address2['address1_com']. " ". $row_rs_select_address2['address2_com']. " ". $row_rs_select_address2['address3_com']. " ". $row_rs_select_address2['town_com']. " ". $row_rs_select_address2['postcode_com'];
echo '<select name="customer">'.'<option value="">Select delivery address</option>'.'<option value="address">'.$address.'</option>'.'</select>';
}
?>
while循环每次都生成一个select元素
你应该把select放在while之外
echo "<select>";
while(/* while statement */){
echo "<option></option>";
}
echo "</select>";
如果您的目标是使用一个下拉列表来显示所有选项,那么您需要将select的open和close标记的回显放置在while之外,并将选项标记保留在while中:
// also put first option on the outside as you *don't* want to repeat that.
echo '<select name="customer"><option value="">Select delivery address</option>';
while ($row_rs_select_address2 = mysql_fetch_assoc($rs_select_address2))
{
// only place the code in here you want repeated for every value in the query
/*
have you considered concatenating in the query?
Basically:
select concat( address1_com, ' ', address2_com, ' ', address3_com, ' '
town_com, ' ', postcode_com ) as full_address From...
Sometimes the greater number of records means slower execution.
Of course, you should benchmark to be sure.
*/
$address= $row_rs_select_address2['address1_com']. " ".
$row_rs_select_address2['address2_com']. " ".
$row_rs_select_address2['address3_com']. " ".
$row_rs_select_address2['town_com']. " ".
$row_rs_select_address2['postcode_com'];
// notice I swapped out $uid for address. You want to have each option
// reflect a different value so that the POST gives a uid to the server
// You can probably get a uid from the primary key of the company_com
// table.
echo '<option value="$uid">'.$address.'</option>';
}
echo '</select>';
试试这个:
echo '<select name="customer">';
echo '<option value="">Select delivery address</option>';
while ($row_rs_select_address2 = mysql_fetch_assoc($rs_select_address2))
{
$address=$row_rs_select_address2['address1_com']. " ". $row_rs_select_address2['address2_com']. " ". $row_rs_select_address2['address3_com']. " ". $row_rs_select_address2['town_com']. " ". $row_rs_select_address2['postcode_com'];
echo '<option value="address">'.$address.'</option>';
}
echo '</select>';
把你的时间换成这个
echo '<select name="customer">';
echo '<option value="">Select delivery address</option>';
while ($row_rs_select_address2 = mysql_fetch_assoc($rs_select_address2))
{
$address=$row_rs_select_address2['address1_com']. " ". $row_rs_select_address2['address2_com']. " ". $row_rs_select_address2['address3_com']. " ". $row_rs_select_address2['town_com']. " ". $row_rs_select_address2['postcode_com'];
echo '<option value="address">'.$address.'</option>'
}
echo '</select>';
试着这样做:
echo '<select name="customer">';
while ($row_rs_select_address2 = mysql_fetch_assoc($rs_select_address2))
{
$address=$row_rs_select_address2['address1_com']. " ". $row_rs_select_address2['address2_com']. " ". $row_rs_select_address2['address3_com']. " ". $row_rs_select_address2['town_com']. " ". $row_rs_select_address2['postcode_com'];
echo '<option value="">Select delivery address</option>'.'<option value="address">'.$address.'</option>';
}
echo '</select>';
您正在为表中的每一行设置不同的地址,希望这能有所帮助:。选择送货地址选项也应该在表外:-