我想在while循环中创建一个新的变量名来存储$ row ['']数组的值。
$sql = mysql_query(" SELECT * FROM table where idTable=5 ") or die(mysql_error());
$num = 1;
while($row = mysql_fetch_array( $sql )) {
echo 'opc'.$num = $row['opcRes'];//I want to create the new varible
//$opc1 then $opc2, $opc3 etc...
//that is why I increment $num
$num++;
}
然后在创建新变量后,我想从php html echo
将值打印到屏幕上echo '
<div class="entry">
<h3 class="pTitle">'.$preg.'</h3>
<form action="" method="post">
'.for($i = 1; $i < $num; $i++){
.'
<input type="radio" name="'.$opc.$num.'" value="'. echo $opc.$num; .'">'. echo $opc.$num; .'<br/>
'.}.'
<input type="submit" value="Submit">
<input type="hidden" name="idPreg" value="idPreg">
<input type="hidden" name="sent" value="1">
</form>
</div>
';
完整代码:
<?php
function getPreguntas($dbc){
$sql = mysql_query(" SELECT * FROM pregunta ") or die(mysql_error());
if($sql){
while($row = mysql_fetch_array( $sql )) {
$idPreg = $row['idPregunta'];
$preg = $row['pregunta'];
if ($sql = mysql_query("SELECT opcRes FROM opciones where pregunta_idPregunta='$idPreg' ")) {
if (mysql_num_rows($sql) > 0) {
$opc = mysql_fetch_assoc($sql);
}
}
echo '
<div class="entry">
<h3 class="pTitle">'. $preg .'</h3>
<form action="" method="post">
'.
if (!empty($opc)) {
foreach ($opc as $key=>$value) {
.'
<input type="radio" name="'.$value.'" value="'.$value.'">'.$value.'<br/>
'.
}
}.'
<input type="submit" value="Submit">
<input type="hidden" name="idPreg" value="idPreg">
<input type="hidden" name="sent" value="1">
</form>
</div>
';
}
}
}
?>
表
-- -----------------------------------------------------
-- Table `SISE`.`pregunta`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `SISE`.`pregunta` (
`idPregunta` INT NOT NULL AUTO_INCREMENT,
`encuesta_idEncuesta` INT NOT NULL,
`ayudaDes` VARCHAR(300) NULL,
`pregunta` VARCHAR(500) NOT NULL,
`opcionesRes` VARCHAR(100) NOT NULL,
PRIMARY KEY (`idPregunta`, `encuesta_idEncuesta`),
INDEX `fk_preguntas_encuesta1_idx` (`encuesta_idEncuesta` ASC),
CONSTRAINT `fk_preguntas_encuesta1`
FOREIGN KEY (`encuesta_idEncuesta`)
REFERENCES `SISE`.`encuesta` (`idEncuesta`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `SISE`.`opcion`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `SISE`.`opcion` (
`idopcion` INT NOT NULL AUTO_INCREMENT,
`pregunta_idPregunta` INT NOT NULL,
`pregunta_encuesta_idEncuesta` INT NOT NULL,
`opcRes` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idopcion`, `pregunta_idPregunta`, `pregunta_encuesta_idEncuesta`),
INDEX `fk_opcion_pregunta1_idx` (`pregunta_idPregunta` ASC, `pregunta_encuesta_idEncuesta` ASC),
CONSTRAINT `fk_opcion_pregunta1`
FOREIGN KEY (`pregunta_idPregunta` , `pregunta_encuesta_idEncuesta`)
REFERENCES `SISE`.`pregunta` (`idPregunta` , `encuesta_idEncuesta`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
答案 0 :(得分:0)
每当您认为需要变量变量名称的数字越来越多时,您真正想要的是 数组 :
$sql = mysql_query(...);
$data = [];
while ($row = mysql_fetch_array($sql)) {
$data[] = $row['opcRes'];
}
...
foreach ($data as $item) {
printf('<input type="radio" name="ops" value="%1$s"> %1$s<br/>', htmlspecialchars($item));
}
答案 1 :(得分:0)
如果你真的需要那个变量(就像你想要的那样),你可以使用大括号{}
从连接的字符串中创建变量。
while($row = mysql_fetch_array( $sql )) {
${'opc'.$num} = $row['opcRes'];
$num++;
}
所以你可以访问你的变量
for($i = 1; $i < $num; $i++){
echo "<input type=\"radio\" name=\"".${'opc'.$i}."\" value=\"".${'opc'.$i}."\">".${'opc'.$i}."<br/>";
}