2012-03-28 14 views
6

La consulta SQL original es esto; SELECCIONE id, post_titulo, post_date DESDE wp_posts donde id = '1'Problema de lista PHP (Desviación no definida:)

Cuando recupero el registro, lo estoy encontrando pero a la hora de devolver los resultados, estoy perplejo. Aquí es donde me quedé atrapado.

while ($row = mysql_fetch_assoc($RS)) : 
     print_r ($row); 
     list($id,$post_title,$post_date) = $row; 
    endwhile; 

print_r ($ row) muestra esto; Array ([ID] => 1 [POST_TITLE] => ¡Hola mundo! [Post_date] => 2012-03-27 03:28:27)

Y cuando corro la función de lista de allí (para fines de depuración obviamente), entiendo esto;

Notice: Undefined offset: 2 in F:\inetpub\wwwroot\whatever\sql.php on line 147 
Notice: Undefined offset: 1 in F:\inetpub\wwwroot\whatever\sql.php on line 147 
Notice: Undefined offset: 0 in F:\inetpub\wwwroot\whatever\sql.php on line 147 

¿Qué está causando esto?

Respuesta

5

Reemplazar:.

mysql_fetch_assoc($RS)

con:

mysql_fetch_array($RS, MYSQL_NUM)

entonces debería funcionar, porque la función list trys para acceder a la matriz usando las teclas numéricas.

4

Supongo que la respuesta se encuentra en algún lugar dentro de esto;

lista() sólo funciona en las matrices numéricas y asume los índices numéricos comienzan en 0.

:(

1

Utilizó mysql_fetch_assoc, por lo que la matriz resultante por fila tiene los datos en una tecla por nombre de columna, . mientras que la "lista" intenta hacer coincidir las variables con los valores numéricos utilizando los índices de matriz puede utilizar mysql_fetch_array lugar

0

$ categ = val1 | val2

list ($ one, $ two, $ three) = @ split ('[|]', $ categ);

Si intenta listar el valor que no está disponible, devolverá el error Compensación indefinida.

Aquí serán indefinidos el error de offset 2.

Porque mientras spliting $ categ, tendrá sólo dos valores, si se intenta acceder tercer valor luego volverá error.

Cuestiones relacionadas