Comunidad PHPeros
Lenguajes => PHP => Mensaje iniciado por: -Pituko- en 17 de Marzo de 2011, 17:22:22 pm
-
Estoy ayudando a un sitio web a terminar su minichat, y programe el script que desbanea usuarios, el problema es que nunca me carga toda la página.
Acá el codigo:
<?php
include("mispoderes.php");
include("conectar.php");
include("funciones.php");
?>
<link href="estilos.css" rel="stylesheet" type="text/css" />
<form metod="post" action="">
<?php
echo "Usuario a desbanear:<br>";
echo "<select name='baneo' id='baneo' class='MCampo'>";
$baneados = mysql_query("SELECT * FROM usuarios WHERE ID_USER != '".$arr['nick']."' ORDER BY id ASC");
while($row['id'] == $baneados) {
?>
<option value="<?=$row['id']; ?>"><?=$row['nick']; ?></option>
<?php
}
echo "</select>";
?>
<input type="submit" class="MCampo" value="Desbanear" />
<?php
if ((isset($_POST["baneo"])) && (! empty($_POST["baneo"]))) {
mysql_query("DELETE FROM baneos WHERE ID_USER = '".$arr['nick']."'")or die(mysql_error());
echo "Usuario desbaneado con éxito";
} else {
echo "Error desconocido";
}
?>
</form>
Les agradecería muchísimo que me ayuden con este problema.
Sospecho que esta en el while.
-
Primero que nada, nunca consultes todos los campos de una tabla si no los necesitas todos, por ejemplo, en ese caso solo necesitabas el campo 'id' y 'nick', por lo tanto podías hacer:
SELECT id, nick FROM ...........
Y bueno, sobre el error, sí, está en el while.
$baneados = mysql_query("SELECT * FROM usuarios WHERE ID_USER != '".$arr['nick']."' ORDER BY id ASC");
Primero, la variable $baneados contiene el resultado de la consulta SQL, pero no aún no has extraído los registros uno por uno.
Por lo tanto, la condición que haces aquí está mal:
while($row['id'] == $baneados) {
-
Primero que nada, nunca consultes todos los campos de una tabla si no los necesitas todos, por ejemplo, en ese caso solo necesitabas el campo 'id' y 'nick', por lo tanto podías hacer:
SELECT id, nick FROM ...........
Y bueno, sobre el error, sí, está en el while.
$baneados = mysql_query("SELECT * FROM usuarios WHERE ID_USER != '".$arr['nick']."' ORDER BY id ASC");
Primero, la variable $baneados contiene el resultado de la consulta SQL, pero no aún no has extraído los registros uno por uno.
Por lo tanto, la condición que haces aquí está mal:
while($row['id'] == $baneados) {
Ok, gracias, iré viendo como solucionarlo.