Pregunta

Una cosa que siempre ha pinchado mí es que al comprobar mis scripts PHP para problemas consigo la advertencia "bool-asignar: Asignación en buenas condiciones" y los consigo mucho. por ejemplo:.

$guests = array();
$sql = "SELECT * FROM `guestlist`";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result))
    $guests[] = $row['name'];

¿Hay una manera diferente para obtener múltiples o todas las filas en un objeto o una matriz? O hay nada malo con este método?

¿Fue útil?

Solución

Trate de hacer esto en su lugar:

$guests = array();
$sql = "SELECT * FROM `guestlist`";
$result = mysql_query($sql);
while(($row = mysql_fetch_assoc($result)) !== false)
    $guests[] = $row['name'];

Creo php está advirtiendo a causa de la fila $ = mysql_fetch_assoc ($ resultado) no devolver un valor lógico.

Otros consejos

En realidad, creo que está avisando, ya que podría estar cometiendo un error. Normalmente en un condicional, que quiere decir que hacer:

if (something == something_else)

Pero es fácil cometer un error e ir:

if (something = something_else)

Así que es probable que le está avisando. Si PHP es nada en absoluto como C, puede arreglar su problema con un conjunto de paréntesis alrededor de su declaración, así:

while(($row = mysql_fetch_assoc($result)))

Creo que la respuesta de Jeremy es un poco fuera, debido a que PHP está vagamente escrito y en general no se molesta con tales distinciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top