Los que desarrollamos con Zend Studio o con Eclipse y nos da por abrir proyectos antiguos, vemos que se nos empieza a quejar de errores en nuestro codigo antiguo. Uno de estos errores es el de ‘Asigment in condition’que viene a decir que estamos asignando un valor en una condicional.
Veamos el ejemplo.
Los que somos de la vieja escuela de PHP realizabamos las consultas a MySQL como nos las habian explicado, por lo menos en mi caso era de esta manera:
$sql = "Select * from `tabla`"; $consulta = mysql_db_query($dbname, $sql, $con); while ( $resultado = mysql_fetch_array($consulta)) { echo $resultado[0],$resultado[1];// presentábamos los datos }
Bien esta sintaxis la cual nos aprendimos de memoria ahora nos tirara dos errores. El primero lo explique en una entrada anterior y es el mysql_db_query, el cual ha pasado a deprecated y hay que usar el mysql_query($sql, $con), y la base de datos pasa a establecerse con la funcion mysql_select_db($dbname)
El segundo error que nos dará, es en el while el cual es debido a que estamos asignando valor a $resultado dentro de una estructura condicional. Para solucionarlo rápidamente añadiremos true == delante o detrás de la estructura.
La estructura corregida quedara de la siguiente manera
mysql_select_db($dbname); // Seleccionamos la base de datos para trabajar $sql = "Select * from `tabla`"; $consulta = mysql_query($sql, $con); while ( true == ($resultado = mysql_fetch_array($consulta))) { echo $resultado[0],$resultado[1];// presentábamos los datos }
Si analizamos la sentencia de la condicional ahora dice mientras la asignacion de valor a resultado sea verdadero hara el echo.
+Info: Aquí