Autor Tema: Ayuda con código  (Leído 315 veces)

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Ayuda con código
« 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.

Comunidad PHPeros

Ayuda con código
« en: 17 de Marzo de 2011, 17:22:22 pm »

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:Ayuda con código
« Respuesta #1 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 != &#39;".$arr[&#39;nick&#39;]."&#39; 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) {

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:Ayuda con código
« Respuesta #2 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 != &#39;".$arr[&#39;nick&#39;]."&#39; 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.