repetitivos - php comando for
Problema de ciclo infinito de PHP (1)
Cada vez que llamas while($row = mysqli_fetch_array($MySQL->getReports(''jackginger'')))
estás haciendo una nueva consulta, por lo que está buscando la misma cosa una y otra vez.
una solución podría ser:
<?php
include ''/functions/MySQL.php'';
$MySQL = new MySQL;
$con = mysqli_connect("host","user","password","db");
$result = mysqli_query($con,"SELECT * FROM reportLogger WHERE Moderator=''jackginger''");
$store = $MySQL->getReports(''jackginger'');
while($row = mysqli_fetch_array($store)) {
$time = $row[''Time''];
$moderator = $row[''Moderator''];
$reason = $row[''Reason''];
// Now for each looped row
echo "<tr><td>".$time."</td><td>".$moderator."</td><td>".$reason."</td></tr>";
}
?>
Puedo obtener el código correcto para trabajar, pero quiero poder usar objetos y métodos, lo que no funciona. La misma entrada en la base de datos se repite hasta que la consulta falla. Vi a otras personas que tenían consultas dentro del enunciado while, pero pensé que el método que estoy utilizando solo debería consultar el enunciado una vez, pero probablemente sea incorrecto. Gracias.
<?php
include ''/functions/MySQL.php'';
$MySQL = new MySQL;
$con = mysqli_connect("host","user","password","db");
$result = mysqli_query($con,"SELECT * FROM reportLogger WHERE Moderator=''jackginger''");
while($row = mysqli_fetch_array($MySQL->getReports(''jackginger''))) {
$time = $row[''Time''];
$moderator = $row[''Moderator''];
$reason = $row[''Reason''];
// Now for each looped row
echo "<tr><td>".$time."</td><td>".$moderator."</td><td>".$reason."</td></tr>";
}
?>
Clase separada
public function __construct(){
$this->con = mysqli_connect("localhost","root","pass","Minecraft");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
}
public function getUUID($username) {
$result = mysqli_query($this->con,"SELECT UUID FROM loginLogger WHERE Username=''" . $username . "''");
return mysqli_fetch_array($result)[0];
}
public function getReports($username) {
$result = mysqli_query($this->con,"SELECT * FROM reportLogger WHERE UUID=''" . $this->getUUID($username) . "''");
return $result;
}