Comunidad PHPeros

Lenguajes => PHP => Mensaje iniciado por: -Pituko- en 17 de Marzo de 2011, 17:22:22 pm

Título: Ayuda con código
Publicado 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:
Código: [Seleccionar]
<?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=&#39;baneo&#39; id=&#39;baneo&#39; class=&#39;MCampo&#39;>";
$baneados mysql_query("SELECT * FROM usuarios WHERE ID_USER != &#39;".$arr[&#39;nick&#39;]."&#39; ORDER BY id ASC");
while($row[&#39;id&#39;] == $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 = &#39;".$arr[&#39;nick&#39;]."&#39;")or die(mysql_error());
echo "Usuario desbaneado con &eacute;xito";
} else {
echo 
"Error desconocido";
}
?>

</form>

Les agradecería muchísimo que me ayuden con este problema.
Sospecho que esta en el while.
Título: Re:Ayuda con código
Publicado por: Physlet en 17 de Marzo de 2011, 19:06:29 pm
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) {
Título: Re:Ayuda con código
Publicado por: -Pituko- en 17 de Marzo de 2011, 19:20:56 pm
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.