Estoy escribiendo un código php para obtener el valor de una lista desplegable y mostrarlo en una tabla. La lista desplegable se rellena directamente desde mi base de datos. El código para completar la lista desplegable es:
<select name = "Service1"> <option>Select</option> <?php $con=getdb(); $query1="SELECT DISTINCT Service FROM pay"; $result1=mysqli_query($con,$query1);en while($rows1=mysqli_fetch_array($result1)){ $rowsData1=$rows1['Service']; ?> <option value=""><?php echo $rowsData1 ?></option> <?php } ?> </select> <select name = "Terminale1"> <option>Select</option> <?php $query2="SELECT DISTINCT Terminal FROM pay"; $result2=mysqli_query($con,$query2); while($rows2=mysqli_fetch_array($result2)){ $rowsData2=$rows2['Terminal']; ?> <option value=""><?php echo $rowsData2 ?></option> <?php } ?> </select> Y esto funciona porque me muestra los valores en la lista desplegable. Ahora tengo un botón Submit que cuando hago clic en él tiene que mostrarme una tabla con los valores que he seleccionado en la consulta a continuación:
<?php if(isset($_POST['submit'])) { $service2=$_POST['Service1']; $Terminale2=$_POST['Terminale1']; $query3="SELECT Date, Service, Status FROM mytable WHERE Service ='".$service2."' AND Terminal='".$Terminale2."'"; $result3=mysqli_query($con,$query3); while($rows3=mysqli_fetch_array($result3)){ $dataime=$rows3['Date']; $Service=$rows3['Service']; $Status=$rows3['Status']; ?> <tr> <td><?php echo $Date ?></td> <td><?php echo $Service ?></td> <td><?php echo $Status ?></td> </tr> <?php } } ?>Cuando selecciono los valores de la lista desplegable, no me muestra ningún registro o error en mi tabla. ¿Qué estoy haciendo mal?
JustOnUnderMillions sabe enviar respuestas como respuestas y no como comentarios, pero ocasionalmente no lo hace cuando la solución es menor. Desafortunadamente, esto hace que una pregunta parezca no resuelta/abandonada.
Enviaré una respuesta para que la acepte y la mejoraré con algunas mejoras.
$con=getdb(); if($result=mysqli_query($con,"SELECT DISTINCT Service FROM pay")){ echo "<select name=\"Service1\">"; echo "<option>Select</option>"; while($row=mysqli_fetch_assoc($result)){ echo "<option>{$row["Service"]}</option>"; } mysqli_free_result($result); echo "</select>"; }else{ echo "Syntax Error On Service Query"; } if($result=mysqli_query($con,"SELECT DISTINCT Terminal FROM pay")){ echo "<select name=\"Terminale1\">"; echo "<option>Select</option>"; while($row=mysqli_fetch_assoc($result)){ echo "<option>{$row["Terminal"]}</option>"; } mysqli_free_result($result); echo "</select>"; }else{ echo "Syntax Error On Terminal Query"; }Consejo:
<?php y ?> , en mi opinión, hace que el código sea más difícil de leer y el más mínimo error tipográfico puede ser más difícil de encontrar. Aunque no es obligatorio, recomiendo permanecer "en" php a menos que tenga una porción inusualmente grande de código que sea html puro.mysqli_query() y coloco la variable $row[column] directamente en la etiqueta de opción.mysqli_fetch_ . Debido a que la variable de resultado debe verificarse y luego usarse nuevamente, es más simple declararla y verificarla condicionalmente en una línea.