我有我的PHP代碼的一個問題,它給我的錯誤:警告:mysqli_fetch_array()預計參數1被mysqli_result,在C中給出的對象:\ XAMPP \ htdocs中\ funcion2.php上線69如何修復mysqli_fetch_array?我使用PHP,庫MySQLi和HTML
我不知道如何解決它。我需要一些幫助,我需要完成這個項目。
<?php
//Conexion a la BBDD
include 'config.php';
session_start();
if($_REQUEST['cur']){$_SESSION['cur2']=$_REQUEST['cur'];}
$cur=$_SESSION['cur2'];
$str=$cur;
$cur=explode ('|', $str);
echo $cur[0];
if ($_REQUEST['alu']){$_SESSION['alu2']=$_REQUEST['alu'];}
$alu=$_SESSION['alu2'];
$str2=$alu;
$alu=explode ('|', $str2);
/*primera consulta*/
$query = 'select * from curso';
$res=mysqli_query($conexion, $query);
/*segunda consulta*/
$query2 = 'select * from alumnos where cod_curso=$cur[0]';
$res2=mysqli_query($conexion, $query2);
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
</head>
<body>
<form name="form1" method="post">
<div class="form-group col-md-3">
<label>Curso</label>
<select name="cur" onchange="this.form.submit() ;">
<option value="<?php echo $cur[1] ?>" ></option>
<?php \t
while ($row=mysqli_fetch_array($res))
{
\t \t
\t \t ?>
\t \t <option value="<?php echo $row[0]."|".$row[1]?>"><?php echo htmlentities($row[1]); ?>
\t \t </option>
\t \t
\t \t <?php } ?>
\t
</select>
</div>
<div class="form-group col-md-6">
<label>Alumnos</label> \t \t \t \t \t
<select name="alu">
<option value="<?php echo $alu[0]?>"</option>
<?php \t
while ($value=mysqli_fetch_array($res2))
{
\t \t
\t \t ?>
\t \t <?php foreach ($alu as $key => $value){ ?>
\t \t <option value="<?php echo $value[0]."|".$value[1]?>"><?php echo htmlentities($value[1]);?>
\t \t </option>
\t \t <?php } ?>
\t \t <?php } ?>
</select>
</div>
\t <input type="submit" name="enviar" value="Enviar" hidden />
\t
</form>
<?php
echo "Tu curso es: ".$cur[1]."<br/>";
echo "El alumno es: ".$alu[1]."<br/>";
?>
</body>
</html>
我的數據庫有這2個表: 表alumnos和表CURSO
我修改了參數無覆蓋ut @和第二個mysqli_fetch_array。
** WARNING **:調用與'@'操作方法時,不要壓制錯誤。如果出現問題,您希望瞭解它,並且需要採取糾正措施,向用戶顯示有用信息,記錄問題或所有這些。如果您忽略了試圖指出嚴重問題的錯誤,它也使得像這樣的調試問題變得更加複雜。 – tadman
** WARNING **:當使用'mysqli'你應該使用[參數化查詢(http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和['bind_param']( http://php.net/manual/en/mysqli-stmt.bind-param.php)將用戶數據添加到您的查詢中。 **不要**使用字符串插值或連接來完成此操作,因爲您創建了嚴重的[SQL注入漏洞](http://bobby-tables.com/)。 **不要**將'$ _POST','$ _GET'或**任何**用戶數據直接放入查詢中,如果有人試圖利用您的錯誤,這可能會非常有害。 – tadman
http://php.net/manual/en/mysqli-result.fetch-array.php'$ value = mysqli_fetch_array($ conexion,$ cur)'應該更像'$ value = mysqli_fetch_array($ res2)'因爲它認爲第一個參數是結果,但我不會將其作爲答案發布,因爲在進一步討論之前應考慮@tadman評論。 –