RE: recuperación de datos
El problema es... que así no se trabajan los resultados de una consulta a MySQL.
La variable $result contiene nada más que una referencia a los resultados de la consulta (o FALSE en caso de error), no son los resultados en sí. Tú tienes que usar esa referencia para extraer los registros devueltos por la consulta en las funciones especialmente creadas para ello.
Usando tu ejemplo sería:
$query = "SELECT sn FROM stock2";
$result = mysql_query($query);
$row = mysql_fetch_row($result); // Aquí pasas la referencia.
echo "sn es ".$row[0];
Esa última función devuelve UN registro distinto por cada vez que la llamas usando la misma referencia hasta que no queden más registros en el resultado de la consulta. Cada registro irá a parar a $row, y $row será un array asociativo con índice numérico y base cero. Cada posición de ese array se corresponde con cada campo del registro.
En tu ejemplo la consulta debe devolver un solo campo llamado "sn" de todos los registros que hay en la tabla "stock2".
Para recorrer los resultados de una consulta en caso que haya más de un registro en ese resultado deberías hacer algo como esto:
$query = "SELECT sn FROM stock2";
$result = mysql_query($query);
while ($row = mysql_fetch_row($result)) { // (1)
echo $row[0]."<br />";
}
La línea (1) quiere decir "mientras haya registros en el resultado de la consulta..."
Hay otra función que suele facilitar la manipulación de los registros de resultados de la consulta, es mysql_fetch_array(), ésta función hace lo mismo que la anterior pero en vez de devolver un array con índice numérico, devuelve un array cuyos índices son los nombres de los campos devueltos.
$query = "SELECT sn FROM stock2";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) {
echo $row['sn']."<br />";
}
¿Se comprende lo que digo o no?