我一直在一个网站上使用php在mysql中添加,编辑,删除和查看来自几个不同表的数据,到目前为止,我已经能够通过下拉菜单向其中添加数据,但是更新导致我有点问题。在添加下拉列表之前,它可以正常工作,但是决定添加它以限制用户使用现有数据,并且不输入不存在或不遵循格式的证章,然后添加了下拉列表。
<form method="post" class="text-center">
<select name="alumno" class="form-control mx-auto" style="width:auto;" required>
<option value="" disabled selected>Seleccione un Alumno</option>
<?php
$cnn=mysqli_connect('localhost', 'root', 'CC2CRO','control_de_notas')
or die('No se pudo conectar');
$sqlcg = "SELECT Carnet, Nombres, Apellidos FROM datos";
$result = mysqli_query($cnn, $sqlcg);
while ($row = mysqli_fetch_array($result))
{
echo "<option value='".$row['Carnet']."'>".$row['Nombres']." ".$row['Apellidos']."</option>";
}
?>
</select>
<button type="submit" name="buscar">Actualizar</button><br>
</form>
此下拉列表适用于另一种形式,我必须将表datos中的信息添加到具有3个不同表的信息的另一张表中,例如,表datos中的信息相同,Carnet是我采用另一种形式输入的值一个较大的表,其中包含来自较小表的代码以将它们连接在一起。但是我似乎无法解决的问题是,当我要编辑表格时,即使表格中存在Carnet,它也不会显示任何数据
<?php
if (isset($_POST["buscar"]))
{
$cnn=mysqli_connect('localhost', 'root', 'CC2CRO','control_de_notas')
or die('No se pudo conectar');
$cod=strtoupper($_POST["alumno"]);
$sql2 = "SELECT Carnet,Apellidos,Nombres,Direccion FROM datos WHERE Carnet='".$cod."'";
$contar=mysqli_num_rows(mysqli_query($cnn,$sql2));
if ($contar!=0)
{
$result2 = mysqli_query($cnn,$sql2);
echo "<form name='mostrar' method='post' class='text-center'>";
echo "<div align='center' class='table-responsive-sm'><table border='3' class='table table-sm table-hover' style='width:auto'>
<tr>
<td class='table-secondary text-center' style='font-size:110%;'><b>Codigo</b></td>
<td class='table-secondary text-center' style='font-size:110%;'><b>Nombre</b></td>
<td class='table-secondary text-center' style='font-size:110%;'><b>Direccion</b></td>
</tr>";
$row2 = mysqli_fetch_row($result2);
echo "<tr>
<td class='table-info><input type='text' name='mcodigo' value='".$row2[0]."' size='12' placeholder='Carnet' readonly/></td>
<td class='table-info><input type='text' name='mnombre' value='".$row2[2]." ".$row2[1]."' size='50' placeholder='Digitar Nombre' Maxlength='50' readonly></td>
<td class='table-info><input type='text' name='dir' value='".$row2[4]."' size='75' placeholder='Digitar Nombre' Maxlength='75' required/></td>
</tr></table>
<button type='submit' name='actualizar'>Actualizar</button>
</form></div>";
}
else
{
echo ("<SCRIPT LANGUAGE='JavaScript'>window.alert('Problema con el Sistema / Registro NO encontrado')</SCRIPT>");
}
}
if (isset($_POST["actualizar"]))
{
$cod=strtoupper($_POST["mcodigo"]);
$nom=trim(ucwords($_POST["dir"]));
$sql3="update datos set Direccion='$nom' where Codigo ='$cod'";
$mod = mysqli_query($cnn,$sql3);
if ($mod)
{
echo ("<SCRIPT LANGUAGE='JavaScript'>window.alert('Cambio Exitoso !!!!')</SCRIPT>");
}
else
{
echo ("<SCRIPT LANGUAGE='JavaScript'>window.alert('NO se pudo realizar la actualizacion')</SCRIPT>");
}
}
?>
如果我选择了下拉菜单中存在的条目,则当我单击该条目时不会显示
<button type='submit' name='actualizar'>Actualizar</button>
在没有下拉菜单但有输入的情况下它确实起作用了
<input type="text" name="alumno" size="15" placeholder="Carnet a Modificar" Maxlength="8" required autofocus />
当我尝试更新其他表时,也会遇到相同的问题,我最担心的是该表具有3个不同表的下拉菜单,正如我提到的那样,当我有输入但我想输入它,以便您可以选择已经存在的信息,例如该表以及其他我不编辑主键的信息,或者对于大表我不编辑外键。
为使大表显示数据,我使用2下拉列表选择表的2个不同单元格以得到1个共同的结果,并运行与上述相同的查询
$sql2 = "SELECT Carnet,Materia,Docente,Laboratorio,Parcial,Promedio FROM datos WHERE Carnet='".$_POST['alumno']."' AND Materia='".$_POST['materia']."'";
此代码与上面的代码相似,唯一的区别是前两个代码块用于更新1个表,而最后一个代码块用于更新表,但我必须从2个单元格中选择数据, 2个下拉菜单。