El artículo de Remy Porter para la serie CodeSOD de The Daily WTF, publicado el 6 de octubre de 2026, revisa código que DJ escribió para su primer proyecto web remunerado. DJ tenía 19 años y acababa de empezar a aceptar trabajos de desarrollo web por una tarifa baja. La función debía seleccionar contenido de la base de datos para un banner situado a la derecha. Desde entonces DJ ha aprendido mucho, pero la función antigua seguía disponible.

random-banner.php
<?php
$int = array();
$query = $sql->query("SELECT * FROM rightside");
while($row = $sql->objects('',$query)) {
    $int[$row->id] = $row->id;
    if ($row->id > $max) { $max = $row->id; }
}
$x = false;
while ($x == false) {
    $rand = rand(0,$max);
    foreach ($int as $thing) {
        if ($thing == $rand) { $x = true; }
    }
}
$query = $sql->query("SELECT * FROM rightside WHERE id = ".$rand);

La rutina ejecuta `SELECT * FROM rightside` mediante `$sql->query` y recorre los resultados con `$sql->objects('',$query)`. Usa cada `id` como clave y valor de un array disperso. También guarda el ID más alto en `$max`, aunque `SELECT *` devuelve más columnas que esa. Después genera un número con `rand(0,$max)` y lo busca en el array usando `foreach`. Si no encuentra coincidencia, vuelve a generar otro número hasta acertar con un ID existente. La consulta final, `SELECT * FROM rightside WHERE id = ".$rand`, se construye mediante concatenación de cadenas.

Porter considera deficiente la implementación incluso para los estándares del PHP de principios de los años 2000. También señala a la empresa que contrató por muy poco dinero a un desarrollador sin experiencia. El ejemplo recuerda que el código escrito a los 19 años puede resultar incómodo con el paso del tiempo. Porter no cree que DJ deba expiar nada. La historia deja una lección para programadores y empresas.